2012-07-19 39 views
0

我試圖使用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 

如果有人能幫助我,我會非常感激。

+0

你的標題是不是描述性的,這個問題本身並沒有任何意義。 – asawyer 2012-07-19 18:03:40

+0

我試圖改變檢測,如果我的鼠標指針是在數據網格中的列標題之上,並基於該更改鼠標指針的圖標。 – mike 2012-07-19 18:04:52

+0

*「...但我無法弄清楚」* - *你無法弄清楚什麼?你已經在那裏的代碼有什麼問題?請擴大您的答案,更具體。 – stakx 2012-07-20 15:51:35

回答

3

的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

1

看一看在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