HIRO's.NET

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

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

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

HIRO's.NET RSSHIRO's.NET RSS


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

HOME > C# 2003 Tips > コントロール > DataGrid Tips メニュー

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

UPDATE:2004/09/13 

<< 前のTips  次のTips >>

 

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

 
サンプル
private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{

    System.Windows.Forms.DataGrid.HitTestInfo HT;
    // クリックされた位置を引数に渡す
    HT = dataGrid1.HitTest(e.X, e.Y);
    //クリックされた場所の情報を取得
    switch (HT.Type)
    {
        case System.Windows.Forms.DataGrid.HitTestType.None:
            label1.Text = "バックグランドがクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.Cell:
            label1.Text = HT.Row.ToString() + "行," + HT.Column.ToString() + "列" +
                "のセルがクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader:
            label1.Text = "列ヘッダ" + HT.Column.ToString() + "がクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.RowHeader:
            label1.Text = "行ヘッダ" + HT.Row.ToString() + "がクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.ColumnResize:
            label1.Text = HT.Column.ToString() + "列の境界線がクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.RowResize:
            label1.Text = HT.Row.ToString() + "行の境界線がクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.Caption:
            label1.Text = "キャプションがクリックされました。";
            break;
        case System.Windows.Forms.DataGrid.HitTestType.ParentRows:
            label1.Text = "親行セクションがクリックされました。";
            break;
    } 

}