[英]Datagridcomboboxcell in datagridview Limit the values vb.net
[英]DataGridComboBoxCell - Can't Fill Values Programmatically
我正在用 2 列填充 DataGridView,一個DataGridViewTextBoxColumn
用於名稱標簽,一個DataGridViewComboBoxColumn
作為下拉列表用於選擇 SQL 列名稱以映射到該名稱。
我要遍歷我的名字,並為每個名字創建一行。 每一行都應該顯示一個字段的名稱( String
對象),在另一列中應該是一個組合框(值在List (Of String)
)。 我不斷收到一個異常,說“值無效”:
For Each sourceColumn As String In sourceColumnList
Dim item As New DataGridViewTextBoxCell
Dim destcombo As New DataGridViewComboBoxCell
item.Value = sourceColumn
destcombo.Items.AddRange(sqlColumnSelectionList.ToArray())
' ERROR IS HERE, REFERRING TO INVALID COMBO BOX |
' \|/
list_Destination_SQLMap.Rows.Add(sourceColumn, destcombo)
Next
我已經用谷歌搜索過,但只能找到有關如何使用綁定而非未綁定數據源解決此問題的示例。 我知道我錯過了一些東西,這是我第一次使用DataGridView
。
添加DataGridViewComboBoxColumn
您還需要將其DataSource
屬性設置為有效源。 如果您從數據庫或List (Of T)
獲取數據,則為DataTable
- 您的List (Of String)
將正常工作。
在創建並填充sqlColumnSelectionList
之后添加以下代碼。 (不要忘記將變量名column2
更改為您命名的任何名稱)
column2.DataSource = sqlColumnSelectionList
重要的是要記住,在初始化和一般使用方面, DataGridViewComboBox
就像普通的ComboBox
一樣工作。
完成后,在添加行時應更改此行:
list_Destination_SQLMap.Rows.Add(sourceColumn, destcombo)
成為:
list_Destination_SQLMap.Rows.Add(sourceColumn, "")
這會將新行添加到 DataGridView,其中 Text 列中的條目與字段名稱匹配(根據您的描述),第二列將為空白,允許用戶從下拉列表中選擇值。
如果您需要將第二列預選為一個值,請用該值替換空字符串。
DataGridViewComboBoxColumn 只需要填充一次,而不是每次向 DataGridView 添加新單元格時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.