.NET TIPS

DataGridコントロールでクリックされたセルの位置を取得するには?

デジタルアドバンテージ
2003/12/05

 DataGridコントロールで、クリックされたセルの位置、つまりセルの行番号と列番号を取得するには、DataGridクラス(System.Windows.Forms名前空間)のMouseDownイベントのイベント・ハンドラを作成し、そのハンドラのパラメータとして渡されるマウスのX座標とY座標がセルの何行何列目になるかを、DataGridクラスのHitTestメソッドを使って調べる。具体的には次のようなコードになる。

private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
  // *** クリックしたセルを取得する ***
  DataGrid.HitTestInfo info = ((DataGrid)sender).HitTest(e.X, e.Y);
  switch (info.Type)
  {
    case DataGrid.HitTestType.Cell :
      MessageBox.Show(info.Row + " 行 "
                    + info.Column + " 列目がクリックされました!");
      break;
    default:
      MessageBox.Show("クリックした場所はセルではありません。");
      break;
  }
}
クリックしたセルの位置を取得するMouseDownイベント・ハンドラ(C#)

 HitTestメソッドの戻り値としては、DataGrid.HitTestInfoクラス(System.Windows.Forms名前空間)のオブジェクトが返される。そのオブジェクトのTypeプロパティを参照すると、クリックされた部分の種類(行ヘッダ、列ヘッダ、セルなど)を判別でき、この部分がセル(DataGrid.HitTestType.Cell)の場合には、そのRowプロパティで行番号を、Columnプロパティで列番号を取得できる。

 上記のサンプル・プログラムを実行すると次のようになる。

DataGridコントロールによるデータの一覧表示
  5行目1列目をクリックする。なお、行と列の番号は0番から開始する。

 表示されたDataGridコントロールのセルをクリックすると、セルの位置情報(行番号と列番号)がメッセージ・ボックスで表示される。なお、行と列の番号は0番から始まるので注意が必要だ。

セルの位置情報の表示
クリックされたセルの行番号と列番号が表示される。この例では5行1列目が表示されている。

 なお、メッセージ・ボックスの表示については「TIPS:メッセージ・ボックスを表示するには」でまとめている。End of Article

カテゴリ:Windowsフォーム 処理対象:DataGridコントロール
使用ライブラリ:DataGridコントロール
関連TIPS:メッセージ・ボックスを表示するには
 
この記事と関連性の高い別の.NET TIPS
DataGridコントロールでフォーカスのあるセル位置を取得/設定するには?
[ASP.NET]DataGridコントロールのヘッダーを結合するには?
DataGridViewコントロールで右クリックによるセル選択を可能にするには?
[ASP.NET]DataGridコントロールの同一列内のセルを結合するには?
[ASP.NET]DataGridコントロールのヘッダーを複数行にするには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間