CellClick事件:从组合框中选择不平滑

时间:2012-05-28 13:38:25

标签: .net vb.net winforms events datagridview

我有一个DataGridView,有两列。一个是DataGridViewComboBoxColumn,另一个是DataGridViewButtonColumn。要从DataGridViewButtonColumn捕获按钮单击,我已经写了CellClick事件并且它正常工作。但是,这并不是我DataGridViewComboBoxColumn'平滑'的选择。我的意思是我必须两次点击组合框才能显示下拉列表。我注意到每次点击都会触发CellClick。但只有在第二次点击后,下拉列表才会弹出。解决这个问题的方法是什么?

2 个答案:

答案 0 :(得分:1)

通过将DataGridView的{​​{1}}属性设置为EditMode来解决问题,如下所示:http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/c461b774-ece5-4fdd-86c5-90e5b6426690/

答案 1 :(得分:0)

我找到的最佳工作是在鼠标移动时保持选中当前行以防止多次单击,一个将焦点置于当前行,第二个选择组合框下拉列表,添加以下代码到datagrid的鼠标移动事件:

    Private Sub DataGridView1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseMove
    Dim theRow As Integer = DataGridView1.HitTest(e.X, e.Y).RowIndex
    If theRow < 0 Then
        Exit Sub
    End If
    Me.DataGridView1.CurrentCell = Me.DataGridView1.Rows(theRow).Cells(0)
End Sub