我一直在摸不着头脑。
所以我在设计模式中添加了datagridview
到我的表单。
datagridview有2列,一列是textbox列,另一列是combobox列。
我已经想出如何以编程方式填充文本框的单元格,但是我无法确定用于填充组合框列的属性。
我只是希望dropdown
有3个选项。任何想法都会很棒。
P.S:我刚刚在2天前拿起了VB.net,所以如果问题很原始,我会道歉:)
答案 0 :(得分:5)
如果你的组合框中有DataSource
,你可以这样做
Dim dgvcc As New DataGridViewComboBoxCell
With dgvcc
.DataSource = answerStr
.ValueMember = "CampaignAnswerId"
.DisplayMember = "Answer"
End With
DataGridViewName.Item(columnIndex, rowIndex) = dgvcc
或者你可以这样做
Dim dgvcc As New DataGridViewComboBoxCell
dgvcc.Items.Add("test1")
dgvcc.Items.Add("test2")
dgvcc.Items.Add("test3")
DataGridViewName.Item(columnIndex, rowIndex) = dgvcc
请注意,当您在DataGridView
内循环时,必须执行此操作。
For rowIndex as integer = 0 To DataGridViewName.Rows.Count - 1
Dim dgvcc As New DataGridViewComboBoxCell
dgvcc.Items.Add("test1")
dgvcc.Items.Add("test2")
dgvcc.Items.Add("test3")
DataGridViewName.Item(yourtextboxcolumnIndex, rowIndex) = dgvcc
Next
答案 1 :(得分:0)
试试这个:
'Declare ComboBoxColumn
Dim cbColumn As New DataGridViewComboBoxColumn
cbColumn.Name = "Column ComboBox"
'Add Values
For value As Integer = 0 To 5
cbColumn.Items.Add("Value = " & value.ToString)
Next
'Add ComboBox
DataGridView1.Columns.Add(cbColumn)
答案 2 :(得分:0)
我在 DataGridView_Row Transactions 事件
中执行此操作我的代码如下:
Dim qualifierCell As DataGridViewComboBoxCell =
DirectCast(gridAddTable.Rows(e.RowIndex).Cells(gtQualifier.Index), DataGridViewComboBoxCell)
'gridAddTable.Rows(e.RowIndex).Cells(gtQualifier.Index)
For t As Int32 = 0 To tableMnemonics.Count - 1
qualifierCell.Items.Add(tableMnemonics(t))
Next
注意:
您可能已经注意到我使用了gtQualifier.Index。我更喜欢使用单元格的实际名称,但是您也可以使用Cell(“ gtQualifier”)或仅使用索引:Cell(0)。
您可以跳过 DirectCast 调用(直接在其后使用注释的代码),但是 Visual Studio 会警告您有关隐式强制转换(没什么大不了)在C#中,您需要显式强制转换,因为它不执行隐式强制转换。您会写:
(DataGridViewComboBoxCell)gridAddTable.Rows(e.RowIndex).Cells(gtQualifier.Index)
如果您在 DataGridView_Row Transactions 事件中对此进行编码,则需要确保在调用 InitializeComponents 之前已填充tableMnemonics ,因为InitializeComponents添加了第一行。 InitializeComponents调用位于 .Designer 文件的 New() 子例程中。 (在C# New 中位于FormName.cs文件中)
或者,您可以将此代码放在 UserAddedRow 事件中。在这种情况下,您需要填充表单的 Load 事件中的第一行添加。