0

これの何が問題なのですか:
Form2_Closing:

Form1.DataGridView1.Rows[0].Cells[1].Value = "323";

エラー: インデックスが範囲外です。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

Form1 の DGV には 10 行と 14 列があります

4

2 に答える 2

1

新しいWinformsプロジェクトを作成し、ボタンとそのクリックハンドラーおよびTextBox [を追加して、子が値を設定できるようにします。今のところデザイナーで公開しています]。次に、このフォームに次のコードを追加します。さらに、プロジェクトに新しいフォーム(Form2)を追加します。

private void button1_Click(object sender, EventArgs e)
        {
            var child = new Form2();
            child.FormClosing += new FormClosingEventHandler(ChildFormClosing);
            this.Enabled = false;
            child.Show(this);
        }

        void ChildFormClosing(object sender, FormClosingEventArgs e)
        {
            var child = sender as Form2;
            if (child != null)
            {
                if (child.DialogResult == DialogResult.None)
                {
                    // do data grid view manipulation here 
                    // for ex:
                   (child.Owner as Form1).textBox1.Text = "Hi";
                }
            }
            Enabled = true;
        }
于 2012-06-12T14:07:52.550 に答える
1

DataGridViewコメントから、呼び出し元フォームの内の特定の値を操作するカスタムダイアログを作成しようとしているようです。カスタムメッセージボックスを作成するこの例を確認することをお勧めします。

DataGridViewCell更新したい値を返して、に設定することができますForm1

于 2012-06-12T14:02:19.107 に答える