0

我在winforms工作。在那,我有一个datagridview. 我已将选定的单元格值转移到新表单中,form2

但现在我想将文本框值重新传输form2datagridview单元格中。

我怎样才能做到这一点?

在 上form2,伴随着label1button1textbox。我希望当它textbox被填充并被button1按下时,它将文本从 传输textbox到被选中的单元格。

我为此使用了以下代码。事件代码button_click...

但是出现如下错误。

“对象引用未设置为对象的实例”

4

2 回答 2

2

您确实在表单 2 中重新创建了主表单,这可能不是您需要的。将代码更改为:

private void editToolStripMenuItem_Click(object sender, EventArgs e)
{
 form2 f2 = new form2();
 f2.label1.Text = dataGridView1.SelectedCells[0].Value.ToString();
 f2.ShowDialog();
 dataGridView1.SelectedCells[0].Value = f2.textBox1.Text;
}

private void button1_Click(object sender, EventArgs e)
{
    DialogResult = DialogResult.OK;
}
于 2013-01-06T10:53:30.743 回答
0

的设计属性DataGridView dataGridView1.Modifiers = Public

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (var f = new Form2 { Owner = this})
        {
            f.valueFromSelectedCell = dataGridView1.SelectedCells[0].EditedFormattedValue.ToString();
            f.ShowDialog();
        }
    }
}


public partial class Form2 : Form
{
    public string valueFromSelectedCell { get; set; }
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        textBox1.Text = valueFromSelectedCell;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form1 f = this.Owner as Form1;
        var currentCell = f.dataGridView1.CurrentCell;
        f.dataGridView1[currentCell.ColumnIndex, currentCell.RowIndex].Value = textBox1.Text;
        Close();
    }
}
于 2013-01-06T10:47:22.270 回答