私はVB.net(Visual Studio 2010)にDataGridView(DataGridViewSecurityと呼ばれる)を持っています.DataSet(DataSetSecurityと呼ばれます)のDataTable(DataTableSecurityと呼ばれます)にバインドされています。DataTable の整数フィールド (nSecLevel と呼ばれる) に基づいて設定したバインドされていない列 (nSecurityComboBox と呼ばれる) を追加しました。コンボボックスを設定した後、コンボボックスには何も表示されませんが、コンボボックスを選択すると、アイテム コレクションの 5 つの値が表示されます。
DataTable にレコードを追加してからコンボボックスを設定するために使用しているコードは次のとおりです。
Sub Foo()
.
.
.
DataSetSecurity.Tables(0).Rows.Add(New Object() {sName, sID, sSec})
ComboCell_Select(nRow, 3, DataGridViewSecurity, sSecRecs.nSecLevel)
MessageBox.Show("Value for the combo set at " + DataGridViewSecurity.Rows(nRow).Cells(3).Value.ToString)
.
.
.
End Sub
Private Sub ComboCell_Select(ByVal dgvRow As Integer, _
ByVal dgvCol As Integer, _
ByRef DGV As DataGridView,
ByRef nComboBoxRow As Int16)
Try
Dim CBox As DataGridViewComboBoxCell = CType(DGV.Rows(dgvRow).Cells(dgvCol), DataGridViewComboBoxCell)
Dim CCol As DataGridViewComboBoxColumn = CType(DGV.Columns(dgvCol), DataGridViewComboBoxColumn)
CBox.Value = CCol.Items(nComboBoxRow)
DGV.UpdateCellValue(dgvCol, dgvRow)
'MessageBox.Show("New value in the combo box = " + CBox.Value.ToString)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Foo の messagebox.show はコンボボックスの正しい値を表示しますが、何も表示されません。誰かが私が間違っていることを見ていますか?
ありがとう。
-NCGrimbo