HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


VB.NET 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > VB.NET 2003 Tips > コントロール > DataGrid Tips メニュー

15.クリックされた位置の情報を取得する

UPDATE:2004/09/13 

<< 前のTips  次のTips >>

 

 DataGridのHitTestメソッドを使用すると、指定座標位置の情報を取得することができます。サンプルでは指定座標位置にマウスの現在のポジションを渡すことで、クリックされた位置の情報を取得しています。

 
サンプル
Private Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles DataGrid1.MouseDown

    Dim HT As System.Windows.Forms.DataGrid.HitTestInfo
    ' クリックされた位置を引数に渡す
    HT = DataGrid1.HitTest(e.X, e.Y)

    'クリックされた場所の情報を取得
    Select Case HT.Type
        Case System.Windows.Forms.DataGrid.HitTestType.None
            Label1.Text = "バックグランドがクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.Cell
            Label1.Text =HT.Row.ToString() & "行," & _
                HT.Column.ToString & "列のセルがクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
            Label1.Text = "列ヘッダ" & HT.Column.ToString & "列がクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.RowHeader
            Label1.Text = "行ヘッダ" & HT.Row.ToString & "行がクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.ColumnResize
            Label1.Text = HT.Column.ToString & "列の境界線がクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.RowResize
            Label1.Text = HT.Row.ToString() & "行の境界線がクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.Caption
            Label1.Text = "キャプションがクリックされました。"
        Case System.Windows.Forms.DataGrid.HitTestType.ParentRows
            Label1.Text = "親行セクションがクリックされました。"
    End Select

End Sub