动态更改VB.net中的datagrid组合框列值

时间:2016-03-28 10:55:18

标签: vb.net vb.net-2010

我已经以编程方式在datagrid中创建了一个组合框列。现在作为初始化过程的一部分,我想设置一些默认值。但它不起作用。代码如下。

DataGridView1.ColumnCount = 1

With DataGridView1.ColumnHeadersDefaultCellStyle
    .BackColor = Color.Navy
    .ForeColor = Color.White
    .Font = New Font(DataGridView1.Font, FontStyle.Bold)
End With

With DataGridView1
    .Name = "songsDataGridView"
     .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
    .ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
    .CellBorderStyle = DataGridViewCellBorderStyle.Single
    .GridColor = Color.Black
    .RowHeadersVisible = False

    .Columns(0).Name = "Select S "
     .SelectionMode = DataGridViewSelectionMode.FullRowSelect
    .MultiSelect = False
End With

Dim cmb1 As New DataGridViewComboBoxColumn()
cmb1.HeaderText = "Type"
cmb1.Name = "cmb"
cmb1.MaxDropDownItems = 3
cmb1.Items.Add("T")
cmb1.Items.Add("R")
cmb1.Items.Add("T/R")
DataGridView1.Columns.Add(cmb1)

Dim cmb2 As New DataGridViewComboBoxColumn()
cmb2.HeaderText = "Domain"
cmb2.Name = "cmb"
cmb2.MaxDropDownItems = 5
cmb2.Items.Add("A")
cmb2.Items.Add("F")
cmb2.Items.Add("H")
cmb2.Items.Add("F")
cmb2.Items.Add("P")
DataGridView1.Columns.Add(cmb2)

Dim cmb3 As New DataGridViewComboBoxColumn()
cmb3.HeaderText = "Side"
cmb3.Name = "cmb"
cmb3.MaxDropDownItems = 8
cmb3.Items.Add("Left")
cmb3.Items.Add("Right")
cmb3.Items.Add("Top")
cmb3.Items.Add("Down")
cmb3.Items.Add("TopLeft")
cmb3.Items.Add("TopRight")
cmb3.Items.Add("DownLeft")
cmb3.Items.Add("DownRight")
DataGridView1.Columns.Add(cmb3)

Dim collocationiD As New DataGridViewTextBoxColumn()

With collocationiD
    .HeaderText = "Location ID"
    .Name = "sn3"
    .Width = 60
    .ReadOnly = True
End With
DataGridView1.Columns.Insert(4, collocationiD)

Dim cmb4 As New DataGridViewComboBoxColumn()
cmb4.HeaderText = "No of partitions"
Dim additem As Integer = 1
cmb4.Name = "cmb4"
cmb3.MaxDropDownItems = 32
Do
    cmb4.Items.Add(additem)
    additem = additem + 1
Loop Until additem = cmb3.MaxDropDownItems.ToString
DataGridView1.Columns.Add(cmb4)

现在尝试设置datagrid的默认值。

DataGridView1.Rows(1).Cells(2).Value = "T"

1 个答案:

答案 0 :(得分:0)

'试试这个

Private Sub Datagridview1_DefaultValuesNeeded(ByVal sender As Object,ByVal e As System.Windows.Forms.DataGridViewRowEventArgs) Handles Datagridview1.DefaultValuesNeeded

      e.Row.Cells("ColumnName").Value = valueMember        

End Sub