|
.NET TIPS DataGridViewコントロールで右クリックによるセル選択を可能にするには?[2.0のみ、C#、VB]デジタルアドバンテージ 遠藤 孝信2007/01/12 |
![]() |
|
|
|
DataGridViewコントロールでは、マウスの右クリックには何の操作も割り当てられていない(設定によりコンテキスト・メニューを表示させることは可能)。本稿では右クリックによりセルを選択可能にする方法を紹介する。
DataGridViewコントロールのCellMouseClickイベント
DataGridViewコントロールでセルがクリックされたときには、Controlクラスで定義されている標準的なMouseClickイベントに加えて、CellMouseClickイベントが発生する。CellMouseClickイベントでは、イベントのパラメータとしてクリックされたセルの行番号と列番号が取得でき、クリックされているセルに簡単にアクセスできる。
以下のサンプル・プログラムでは、CellMouseClickイベントのイベント・ハンドラにおいて、クリックされたセルの選択状態(セルのSelectedプロパティの値)を反転させている。これにより、未選択のセルは選択状態に、すでに選択されているセルは非選択の状態にしている。
デフォルトでは、複数のセルを選択するには[Ctrl]キーを押しながら左クリックする必要があるが、このサンプル・プログラムではそれを右クリックのみで行うことができるようになっている。
| |
| 右クリックでセルの選択を行えるC#のサンプル・プログラム(dgvrightclick.cs) | |
| |
| 右クリックでセルの選択を行えるVBのサンプル・プログラム(dgvrightclick.vb) | |
ここではコードを簡便にするために、.NETで利用可能な画像のデコーダ一覧をデータソースとして使用している。画像のデコーダについては「TIPS:画像を読み込むには?」を参照してほしい。
CellMouseClickイベント・ハンドラの第2パラメータの型であるDataGridViewCellMouseEventArgsクラス(System.Windows.Forms名前空間)は、MouseClickイベントのパラメータであるMouseEventArgsクラス(System.Windows.Forms名前空間)の派生クラスである。このクラスでは、マウスの位置やクリックされたボタンの種類を返すプロパティに加えて、クリックされたセルの行番号と列番号を返すRowIndexプロパティとColumnIndexプロパティが追加されている。なお、行ヘッダや列ヘッダのセルがクリックされた場合には、これらのプロパティは-1となる。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:DataGridViewコントロール 使用ライブラリ:DataGridViewコントロール 使用ライブラリ:DataGridViewCellMouseEventArgsクラス(System.Windows.Forms名前空間) 使用ライブラリ:MouseEventArgsクラス(System.Windows.Forms名前空間) |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


