将数据传递给datagridview的选定单元格

时间:2013-01-06 10:38:43

标签: c# winforms datagridview user-controls

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

但现在我想将form2中的文本框值重新传输到datagridview单元格。

我该怎么做?

form2label1上,有button1textbox。我希望在填充textbox并按下button1时,它会将文本从textbox传输到所选的单元格。

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

但是下面会出现错误。

  

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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();
    }
}