通过DataGridView列标题检测鼠标
问题描述:
我试图使用DataGridView_CellMouseEnter
事件来确定鼠标是否位于某个列标题之上,但我无法弄清楚。通过DataGridView列标题检测鼠标
Private Sub DataGridView_CellMouseEnter(sender As Object, _
e As DataGridViewCellEventArgs) _
Handles DataGridView.CellMouseEnter
If (StrComp(e.ColumnIndex.ToString, "1")) Then
Me.Cursor = Cursors.WaitCursor
Else
Me.Cursor = Cursors.IBeam
End If
End Sub
如果有人能帮助我,我会非常感激。
答
的rowIndex = -1应该告诉你的是:
Private Sub DataGridView1_CellMouseEnter(ByVal sender As Object, _
ByVal e As DataGridViewCellEventArgs) _
Handles DataGridView1.CellMouseEnter
If e.RowIndex = -1 And e.ColumnIndex > -1 Then
MessageBox.Show("Over " & DataGridView1.Columns(e.ColumnIndex).HeaderText)
End If
End Sub
+0
谢谢。这样可行 :) – mike 2012-07-19 18:07:50
答
看一看在DataGridView.HitTest method
Private Sub dataGridView1_MouseEnter(ByVal sender as Object, ByVal e as EventArgs) Handles dataGridView1.MouseEnter
Dim relativeMousePosition as Point = dataGridView1.PointToClient(Cursor.Position)
Dim hit As DataGridView.HitTestInfo = dataGridView1.HitTest(relativeMousePosition.X, relativeMousePosition.Y)
Console.WriteLine(hit.Type.ToString())
End Sub
你的标题是不是描述性的,这个问题本身并没有任何意义。 – asawyer 2012-07-19 18:03:40
我试图改变检测,如果我的鼠标指针是在数据网格中的列标题之上,并基于该更改鼠标指针的图标。 – mike 2012-07-19 18:04:52
*“...但我无法弄清楚”* - *你无法弄清楚什么?你已经在那里的代码有什么问题?请扩大您的答案,更具体。 – stakx 2012-07-20 15:51:35