简体   繁体   English

在DataGridView列标题上检测鼠标

[英]Detect mouse over DataGridView Column Header

I am trying to use the DataGridView_CellMouseEnter event to figure out if the mouse is over one of the column headers, but I can't figure it out. 我正在尝试使用DataGridView_CellMouseEnter事件来确定鼠标是否在列标题之一上,但是我无法弄清楚。

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

If someone could help me I would really appreciate it. 如果有人可以帮助我,我将非常感激。

RowIndex = -1 should tell you that: 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

Have a look at the DataGridView.HitTest method 看看DataGridView.HitTest方法

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM