• 締切済み

DataGridViewの選択した行の値を別のフォ

プログラミング初心者です。 検索してもよく分からかったので、皆様のお力を貸してください。 DataGridViewの選択した行の値を別のフォームに渡したいです。 別のフォームにはNumericUpDownが一行のセルの数の分あり、 そこに値を渡し、変更された値をボタンを押すことでもとのフォームに反映させたいです。 お願い致します。

みんなの回答

noname#186041
noname#186041
回答No.1

仮にDataGridViewのあるフォームをForm1、NumericUpDownのあるフォームをForm2とします。 Form1のDataGridVewの名前をDataGridVew1とし、一行に3つのセルがあるとします。 その3つのセルに対応するForm2のNumericUpDownの名前を、NumericUpDown1、NumericUpDown2、NumericUpDown3とします。 DataGridVew1の任意の1行の全体を選択したいので、MultiSelectプロパティをFalseに、SelectionModeプロパティをFullRowSelectに設定します。 コードの編集で、DataGridVew1を選択し、SelectionChangedのイベントを選択して、Form2の3つのNumericUpDownにDataGridVew1の各セルの値を渡すためのコードを追加します。 Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged Form2.NumericUpDown1.Value = Me.DataGridView1.SelectedRows(0).Cells(0).Value Form2.NumericUpDown2.Value = Me.DataGridView1.SelectedRows(0).Cells(1).Value Form2.NumericUpDown3.Value = Me.DataGridView1.SelectedRows(0).Cells(2).Value End Sub 行も列もインデックスが0から始まることに注意します。 これでForm2を表示させて、Form1のDataGridView1の任意の行を選択すると選択された行の各セルの値がForm2のNumericUpDownに反映されます。 更に、Form2のNumericUpDownの値を変更してその値をForm1のDataGridViewに反映させるには、Form2にボタンを一つ追加して以下のコードを書き込みます。 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form1.DataGridView1.SelectedRows(0).Cells(0).Value = Me.NumericUpDown1.Value Form1.DataGridView1.SelectedRows(0).Cells(1).Value = Me.NumericUpDown2.Value Form1.DataGridView1.SelectedRows(0).Cells(2).Value = Me.NumericUpDown3.Value End Sub これだけです。あとは適当にアレンジしてください。

関連するQ&A