簡體   English   中英

在未綁定模式下以編程方式填充 DataGridView ComboBox?

[英]Filling DataGridView ComboBox programatically in unbound mode?

以下代碼片段(問題在這里: http : //www.vbdotnetforums.com/winforms-grids/10038-fill-datagridview-combobox-column.html )用於在未綁定模式下填充 datagridview 中的組合框單元格:

Dim dgvcc As DataGridViewComboBoxCell
dgvcc = DataGridView1.Rows(2).Cells(0)
dgvcc.Items.Add("comboitem1")
dgvcc.Items.Add("comboitem2")

我正在嘗試做同樣的事情,但我不禁注意到強制轉換操作無效,而這正是 VB 給我的錯誤。

我稍微調整了代碼並嘗試了它,但仍然出現相同的轉換錯誤:

Dim dgvcc As Windows.Forms.DataGridViewComboBoxCell
dgvcc = Window.DataGridView1.Rows(2).Cells(0)
dgvcc.Items.Add("comboitem1")
dgvcc.Items.Add("comboitem2")

Window是 DataGridView1 對象所在的窗體的名稱。

任何人都可以向我展示一種在未綁定模式下填充 datagridview 中的組合框的簡單方法。 你也可以告訴我為什么它對我不起作用,為什么它對其他人起作用?

您正在使用 GridViewComboBoxCell,而不是使用 GridViewComboBoxColumn 並參考下面給出的代碼片段,這將正常工作

    Dim cbState As DataGridViewComboBoxColumn
    cbState = DataGridView1.Columns("cbCol1")
    cbState.Items.Add("Karnataka")
    cbState.Items.Add("Andhra Pradesh")

上面的代碼將為 DataGridview 提供如下結果。

在此處輸入圖片說明

編輯 :

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim cbState As DataGridViewComboBoxColumn
    cbState = DataGridView1.Columns("cbCol1")
    cbState.Items.Insert(0, "Karnataka")
    cbState.Items.Add("Andhra Pradesh")

End Sub

Private Sub DataGridView1_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    If e.ColumnIndex = 0 Then
        e.Value = "Karnataka"
    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM