Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > BaseGrid > 事件 >
MouseDoubleClick

用鼠标双击控件时发生。

我们使用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);
        }
    }
}