初めて datagridview にデータを入力すると、最初の行が強調表示され、クリックするとクリックされたインデックスの値が表示されるボタンが表示されるので、どの行がクリックされたかがわかります。ユーザーが別の検索を行った場合は、datagridview の内容を消去してから、新しいデータを再入力します。繰り返しますが、最初の行 (index(0)) が強調表示されますが、今回はユーザーがボタンをクリックすると、グリッドの最初の行が強調表示されていても、data_grid.rows が何もないことを示すエラーが表示されます。最初の行を .selected = true に設定してみましたが、何も変わりません。それは最初にのみ機能し、その後は二度と機能しません。これが私のコードです:
Public sub show_data()
' Clear everything out of the data grid
' -------------------------------------
With data_grid
While data_grid.RowCount > 0
data_grid.Rows.Clear()
End While
While data_grid.ColumnCount > 0
data_grid.Columns.Clear()
End While
End With
' add the empty rows to the data grid
' -----------------------------------
Dim rows As Integer = assessment_array.Count()
data_grid.Rows.Add(rows)
' Add the data to the columns
' ---------------------------
For r As Integer = 0 To rows - 1
data_grid.Item(0, r).Value = assessment_array(r)(0)
data_grid.Item(1, r).Value = assessment_array(r)(1)
data_grid.Item(2, r).Value = assessment_array(r)(2)
Next
With data_grid
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
.RowHeadersVisible = False
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.AllowUserToOrderColumns = True
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.AllowUserToResizeRows = False
.Rows(0).Selected = True ' highlight the first row
End With
End sub
AddHandler myButton.Click, AddressOf check_for_highlighted_assessment
Public Sub check_for_highlighted_assessment()
MessageBox.Show(data_grid.CurrentRow.Index.ToString)
End Sub
初めてボタンをクリックすると、「0」が返されます。データグリッドに新しいデータが再入力されると、次にボタンをクリックするとエラーが発生します。
助けてくれてありがとう。