我试图拼凑vb.net代码,允许用户右键单击datagridview,然后将光标(或者它是插入符?)放入单元格的文本中。 我已经可以使用
获取行和单元格了 Dim hti As DataGridView.HitTestInfo = sender.HitTest(e.X, e.Y)
并单击鼠标右键单击
If e.Button = Windows.Forms.MouseButtons.Right Then
我也有使用
右键单击用户的位置Dim pt As Point = Me.PointToClient(Control.MousePosition)
我想避开的是如何将它们放在一起以将光标放在用户右键单击的位置。
我不想要的是将光标放在任何地方的单元格中,我需要将光标放入用户右键单击单元格中的单元格文本(如果有的话)。
代码的要点是允许用户根据右键菜单中的选择将一些文本放入单击位置的单元格中。感谢任何有用的建议。
亲切的问候 迈克尔
答案 0 :(得分:1)
这样的事可能......应该运作得相当好。
在DataGridView
CellMouseDown
事件处理程序中:
If e.Button = MouseButtons.Right Then
'Get coordinates within cell
_point = New Point(e.X, e.Y)
'we are going to handle setting the edit state of the cell
_handleEdit = True
'Set current cell to the one we right clicked in (this will trigger the CellEnter event)
dataGridView1.CurrentCell = dataGridView1(e.ColumnIndex, e.RowIndex)
End If
在DataGridView
CellEnter
事件处理程序中:
If _handleEdit Then
'enter edit state
dataGridView1.BeginEdit(False)
'set the seletionstart property based on position
CType(dataGridView1.EditingControl, TextBox).SelectionStart = CType(dataGridView1.EditingControl, TextBox).GetCharIndexFromPosition(_point)
'Done handling the edit state
_handleEdit = False
End If