我目前有一個DataGridView
基於VB.NET
中的靜態表。我想將dgv
中的其中一列「轉換」爲DataGridViewComboBoxColumn
。我的想法是簡單地生成列,將其插入到表,然後在感興趣的列中的值複製到新ComboBoxColumn
,像這樣:「將」DataGridViewColumn轉換爲DataGridViewComboBoxColumn VB.NET
Dim table = DbModel.GetEntries()
If Not table Is Nothing Then
With DataGridView1
.DataSource = table
.RowHeadersVisible = False
.AllowUserToAddRows = True
.SelectionMode = DataGridViewSelectionMode.CellSelect
With .Columns("ID")
.Width = 31
.ReadOnly = True
End With
Dim comboBoxColumn As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn()
comboBoxColumn.ValueType = GetType(String)
Dim myList As New List(Of String)
myList.Add("Choice 1")
comboBoxColumn.DataSource = myList
DataGridView1.Columns.Insert(2, comboBoxColumn)
For i = 1 To DataGridView1.RowCount - 1
If Not DataGridView1.Rows(i).Cells(3).Value Is Nothing Then
DataGridView1.Rows(i).Cells(2).Value = DataGridView1.Rows(i).Cells(3).Value.ToString
End If
'MsgBox(comboBoxColumn.DataGridView.Rows(i).Cells(2).Value)
Next
End With
End If
然而,在新列的單元格仍空;所以我認爲他們沒有被複制。但通過取消註釋For
-loop中的註釋,我清楚地看到它們被複制。有人能告訴我關於我哪裏出錯的地方嗎? Tingis
好的,謝謝,會試試!關於索引,輸入的表實際上具有列的名稱作爲條目(最初不是我的代碼)。 – Tingiskhan
好的,完美!所以在我的回答中糾正for循環。 – tezzo
嗨再Tezzo,這似乎好像沒有解決我的問題。可選項目已被更新,但列中的「選定值」尚未,即仍爲空。 – Tingiskhan