用鼠標(biāo)雙擊控件時(shí)發(fā)生。
我們使用MouseDoubleClick主要是可以根據(jù)鼠標(biāo)當(dāng)前的坐標(biāo),來(lái)知道當(dāng)前鼠標(biāo)雙擊的區(qū)域、位置,以實(shí)現(xiàn)特殊的功能。詳細(xì)信息可以參考“HitTest”。
Vb.Net
Public Sub SmGrid1_MouseDoubleClick(sender As Object,e As System.Windows.Forms.MouseEventArgs)
Dim tbl As SmGrid=sender
'獲得HitTestInfo結(jié)構(gòu)
Dim hit As HitTestInfo= tbl.HitTest(e.X,e.Y)
'如果當(dāng)前鼠標(biāo)點(diǎn)擊的位置位于行標(biāo)題
If hit.Type=HitTestTypeEnum.RowHeader Then
'彈窗顯示當(dāng)前鼠標(biāo)點(diǎn)擊位置的行號(hào)
MessageBox.Show("當(dāng)前行號(hào)為:"+ hit.Row)
'如果想顯示行標(biāo)題中的序號(hào)的話
If tbl.Rows(hit.Row).DataIndex>=0 Then
MessageBox.Show("當(dāng)前行標(biāo)題序號(hào)為:"+ tbl.Rows(hit.Row).DataIndex+1)
'另外一種獲得方法
MessageBox.Show("當(dāng)前行標(biāo)題序號(hào)為:"+ tbl.Rows(hit.Row).GetRowData().Index+1)
End If
End If
End Sub
C# |
public void SmGrid1_MouseDoubleClick(object sender, System.Windows.Forms.MouseEventArgs e) { SmGrid tbl = sender; // 獲得HitTestInfo結(jié)構(gòu) HitTestInfo hit = tbl.HitTest(e.X, e.Y); // 如果當(dāng)前鼠標(biāo)點(diǎn)擊的位置位于行標(biāo)題 if (hit.Type == HitTestTypeEnum.RowHeader) { // 彈窗顯示當(dāng)前鼠標(biāo)點(diǎn)擊位置的行號(hào) MessageBox.Show("當(dāng)前行號(hào)為:" + hit.Row); // 如果想顯示行標(biāo)題中的序號(hào)的話 if (tbl.Rows[hit.Row].DataIndex >= 0) { MessageBox.Show("當(dāng)前行標(biāo)題序號(hào)為:" + tbl.Rows[hit.Row].DataIndex + 1); // 另外一種獲得方法 MessageBox.Show("當(dāng)前行標(biāo)題序號(hào)為:" + tbl.Rows[hit.Row].GetRowData().Index + 1); } } } |