用鼠标双击控件时发生。
我们使用MouseDoubleClick主要是可以根据鼠标当前的坐标,来知道当前鼠标双击的区域、位置,以实现特殊的功能。详细信息可以参考“HitTest”。
Vb.Net
Public Sub SmGrid1_MouseDoubleClick(sender As Object,e As System.Windows.Forms.MouseEventArgs)
Dim tbl As SmGrid=sender
'获得HitTestInfo结构
Dim hit As HitTestInfo= tbl.HitTest(e.X,e.Y)
'如果当前鼠标点击的位置位于行标题
If hit.Type=HitTestTypeEnum.RowHeader Then
'弹窗显示当前鼠标点击位置的行号
MessageBox.Show("当前行号为:"+ hit.Row)
'如果想显示行标题中的序号的话
If tbl.Rows(hit.Row).DataIndex>=0 Then
MessageBox.Show("当前行标题序号为:"+ tbl.Rows(hit.Row).DataIndex+1)
'另外一种获得方法
MessageBox.Show("当前行标题序号为:"+ 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结构 HitTestInfo hit = tbl.HitTest(e.X, e.Y); // 如果当前鼠标点击的位置位于行标题 if (hit.Type == HitTestTypeEnum.RowHeader) { // 弹窗显示当前鼠标点击位置的行号 MessageBox.Show("当前行号为:" + hit.Row); // 如果想显示行标题中的序号的话 if (tbl.Rows[hit.Row].DataIndex >= 0) { MessageBox.Show("当前行标题序号为:" + tbl.Rows[hit.Row].DataIndex + 1); // 另外一种获得方法 MessageBox.Show("当前行标题序号为:" + tbl.Rows[hit.Row].GetRowData().Index + 1); } } } |