0

私はwinformsで働いています。その中で、私はdatagridview. 選択したセルの値を新しいフォームに転送しましたが、form2

form2しかし今、datagridviewセルにあるテキストボックスの値を再転送したいと思います。

どうやってやるの?

にはform2、 とlabel1がありbutton1ますtextboxtextboxが入力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 に答える