将组合框单元格上的双击激活更改为单击?

Posted

技术标签:

【中文标题】将组合框单元格上的双击激活更改为单击?【英文标题】:Changing double clicking activation on Combo box cell to single click? 【发布时间】:2014-07-08 17:30:54 【问题描述】:

我的代码中有一个设置,其中有一个 datagridview。对于每一行,我都有一个组合框单元格,我有一个单独的组合框单元格,因为我想要为每个单元格选择不同的项目。

问题:只有双击箭头时单元格才会下拉。如何更改单元格格式,或者可能是单元格单击事件,以便单元格响应一次单击?

这是我的单元格创建代码。坦率地说,我没有启动任何其他代码,因为我不知道要触摸或调用什么事件。有我可以编辑的属性吗?

代码:

           'add items to combobox list 
            Dim comboCell As New DataGridViewComboBoxCell 
            comboCell.FlatStyle = FlatStyle.Flat
            Dim resolutionList As New List(Of cmbStruct)

            Dim currentResIndex As Integer = 0

            'create list of resolutions
            For j As Integer = 0 To resolutions.Length - 1

                Dim resClass As New cmbStruct
                resClass.Name = resolutions(j)
                resClass.ID = resolutions(j)
                resolutionList.Add(resClass)
                comboCell.Items.Add(resolutions(j))

              Next

            'set combocell values
            comboCell.DisplayMember = "Name"
            comboCell.ValueMember = "ID"

           'set the default value to the current resolution index 

            Try
                comboCell.Value = resolutions(currentResIndex) 
            Catch ex As Exception

            End Try

            comboCell.ValueType = GetType(cmbStruct)
            comboCell.DataSource = resolutionList
            editCameraTable("Resolution", i) = comboCell

        Next

【问题讨论】:

【参考方案1】:

更改 EditMode 属性:

DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter

【讨论】:

【参考方案2】:

似乎有一个几乎相同的问题和一个非常好的答案。它涉及使用 click_event。链接在这里: How to manually drop down a DataGridViewComboBoxColumn?

在链接中:

Private Sub cell_Click(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles      DataGridView1.CellClick
    DataGridView1.BeginEdit(True)
    If DataGridView1.Rows(e.RowIndex).Cells(ddl.Name).Selected = True Then
        DirectCast(DataGridView1.EditingControl, DataGridViewComboBoxEditingControl).DroppedDown = True
    End If
End Sub

【讨论】:

那么,这是否更改变了组合框的样式?也许这可能是另一种解决方案?

以上是关于将组合框单元格上的双击激活更改为单击?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vb.net 中将 datagridview 单元格样式从默认文本框更改为组合框?

如何链接多个组合框表中的两个组合框?

Excel VBA将组合框列表从静态范围更改为动态范围

WPF延迟选择中的组合框

winform中文本框改为密码框

Datagridview组合框未在单击/编辑时选择