将特定列设置为DataGridView的组合框

时间:2013-09-16 10:35:54

标签: vb.net

我只想制作数据网格。第一列和第二列数据网格用于存储单值,第三列用作组合框。

我尝试的代码是

    Dim productGrid As New DataGridView        
    ProductGrid.Columns(0).Name = "CB"
    ProductGrid.Columns(1).Name = "ProductGroup"
    ProductGrid.Columns(2).Name = "Product"
    Dim i As Integer
    With ProductGrid
        If .Rows.Count = 0 Then Exit Sub
        i = 1
        Dim objValueItems As New DataGridViewComboBoxCell
        objValueItems.Items.Add("Server")
        objValueItems.Items.Add("Standalone")
        objValueItems.Items.Add("Demo")
        objValueItems.Items.Add("Anywhere")
        ProductGrid.Item(2, i).Value = objValueItems
    End With

我收到“ProductGrid.Item(2,i).Value = objValueItems”这一行的错误。错误是“索引超出范围。

1 个答案:

答案 0 :(得分:2)

请记住,ComboBox DGV Column的所有单元格都具有相同的内容,因此您不会将项目列表分配给给定单元格,而是分配给所有单元格(到列)。添加给定列时必须包含此项。示例代码:

Dim productGrid As New DataGridView
With productGrid
    .Columns.Add("CB", "CB") 'Text-type column
    .Columns.Add("ProductGroup", "ProductGroup")  'Text-type column
    Dim objValueItems As New DataGridViewComboBoxColumn
    With objValueItems
        .Name = "Product"
        .Items.Add("Server")
        .Items.Add("Standalone")
        .Items.Add("Demo")
        .Items.Add("Anywhere")
    End With
    .Columns.Add(objValueItems) 'ComboBox-type column
End With