0
幾個月前我在網上發現了此代碼。創建datagridview列非常棒。我從來沒有用它來創建一個comboboxcolumn。現在我需要這樣做,並不知道如何將值分配給列。而且,我無法找到我第一次找到此代碼的位置。我現在可以找到它的片段,但沒有完成。如何使用此代碼創建DataGridView列
可以很容易地在他們的值來創建textboxcolumn創造DGV行。但是,我不知道如何創建一個combobox列。順便說一句,在這種情況下,列可以爲每一行使用相同的組合框值。
這裏是我的代碼:
我創建了一個數據表來保存數據綁定到DGV:
Dim dt As New DataTable("Grid")
Dim dr As DataRow
dtSetupColumns(dt)
Public Sub dtSetupColumns(ByRef dt As DataTable)
dt.Columns.Add("name_l", GetType(String))
dt.Columns.Add("name_f", GetType(String))
dt.Columns.Add("state", GetType(String))
End Sub
分配值到DataTable:
dr = dt.NewRow()
dr("name_l") = ' from query table
dt.Rows.Add(dr)
創建在DataGridView列:
dgvCreateColumns(dgv)
Public Sub dgvCreateColumns(ByRef inDataGridView As DataGridView)
With inDataGridView.Columns
.Add(dgvCreateColumn(ColumnStyle.TextBoxColumn, String.Empty, "Last Name", "name_l", 80, DataGridViewContentAlignment.MiddleLeft))
.Add(dgvCreateColumn(ColumnStyle.TextBoxColumn, String.Empty, "First Name", "name_f", 80, DataGridViewContentAlignment.MiddleLeft))
.Add(dgvCreateColumn(ColumnStyle.ComboBoxColumn, String.Empty, "State", "state", 80, DataGridViewContentAlignment.MiddleLeft))
End With
End Sub
Public Shared Function dgvCreateColumn(ByVal ColumnType As ColumnStyle, ByVal format As String, ByVal headerText As String, ByVal dataPropertyName As String, ByVal width As Integer, ByVal alignment As DataGridViewContentAlignment, Optional ByVal bMakeVisible As Boolean = True, Optional ByVal inReadOnly As Boolean = False) As DataGridViewColumn
Dim dgvC As DataGridViewColumn = Nothing
Select Case ColumnType
Case ColumnStyle.ButtonColumn
dgvC = New DataGridViewButtonColumn
Case ColumnStyle.CheckBoxColumn
dgvC = New DataGridViewCheckBoxColumn
Case ColumnStyle.ComboBoxColumn
dgvC = New DataGridViewComboBoxColumn
Case ColumnStyle.ImageColumn
dgvC = New DataGridViewImageColumn
Case ColumnStyle.LinkColumn
dgvC = New DataGridViewLinkColumn
Case ColumnStyle.TextBoxColumn
dgvC = New DataGridViewTextBoxColumn
End Select
With dgvC
.DataPropertyName = dataPropertyName
.DefaultCellStyle.Alignment = alignment
.DefaultCellStyle.Format = format
If ColumnType = ColumnStyle.ButtonColumn Then
'.colum()
End If
.HeaderText = headerText
.Name = headerText
.ReadOnly = inReadOnly
If width = 0 Then
.Visible = False
Else
.Width = width
If bMakeVisible = False Then
.Visible = False
Else
.Visible = True
End If
End If
End With
Return dgvC
End Function