【发布时间】:2016-10-25 14:46:59
【问题描述】:
我有一个从 DataTable 填充的 DatagridviewComboBoxColumn,每当我单击 DataGridViewComboBoxCell 的任何部分时,列表的第一个值都会在单击时显示。但是,当我将焦点移动到另一个单元格而不选择值时,它会消失。
奇怪的是,如果我将 ComboBox 值与 .Items.Add(" ") 一起应用,则行为并不一致。任何人都可以对这个问题有所了解。 这是一个示例代码和一个 gif 图像:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DataGridView1.Rows.Add()
DataGridView1.Rows.Add()
''DataGridViewComboBoxColumn1
DataGridViewComboBoxColumn1.Items.Add("Name1")
DataGridViewComboBoxColumn1.Items.Add("Name2")
'DataGridViewComboBoxColumn2
Dim dt As New DataTable
dt.Columns.Add("id")
dt.Columns.Add("name")
dt.Rows.Add("1", "Name1")
dt.Rows.Add("2", "Name2")
With DataGridViewComboBoxColumn2
.ValueMember = dt.Columns(0).ColumnName
.DisplayMember = dt.Columns(1).ColumnName
.DataSource = dt
End With
End Sub
End Class
【问题讨论】:
-
这听起来像是“通常”的行为。必须点击它。
-
ComboboxColumns 具有相同的设置,但以不同的方式填充。在显示下拉菜单之前,Column1 不会显示任何值。而通过 .DataSource 填充的 Column2 会在触发下拉菜单之前闪烁第一个值。正如我所说:它只会闪烁但不会选择它。
-
我已经测试过了,它工作正常。但是您必须单击所需的项目,而不仅仅是“选择”它。这是用户问题,而不是不良行为。
标签: vb.net datagridviewcombobox datagridviewcomboboxcell