0

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

我试过的代码是

    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”这一行得到错误。错误是“索引超出范围。

4

1 回答 1

2

请记住, a 的所有单元格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
于 2013-09-16T11:27:05.957 回答