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