|
.NET TIPS
DataGridコントロールでフォーカスのあるセル位置を取得/設定するには?
デジタルアドバンテージ
2004/06/11 |
|
|
DataGridコントロールで、現在フォーカスのあるセルの位置(つまり、現在選択されているセルの行番号と列番号)を取得/設定するには、DataGridクラス(System.Windows.Forms名前空間)のCurrentCellプロパティを利用する。
CurrentCellプロパティは、行番号を格納するRowNumberプロパティと、列番号を格納するColumnNumberプロパティを持つDataGridCell構造体のデータである。なお、行番号と列番号は0番から開始するので注意してほしい。
プログラムからフォーカスのあるセルの位置を変えたければ、あらかじめ値を設定したDataGridCellオブジェクトを作成し、それをDataGridコントロールのCurrentCellプロパティにセットすればよい。
次のサンプル・コードでは、このCurrentCellプロパティを使って、フォーカスあるセル位置の取得と設定を行っている。
// フォーカスのあるセル位置を取得するサンプル・コード
DataGridCell curCell = dataGrid1.CurrentCell;
MessageBox.Show(
"フォーカス・セルの\r\n" +
"行番号は" + curCell.RowNumber + "で、\r\n" +
"列番号は" + curCell.ColumnNumber + "です。");
// セル位置を指定してフォーカスを設定するサンプル・コード
// 例:1行1列目のセルにフォーカスを設定。
dataGrid1.CurrentCell = new DataGridCell(1, 1);
|
|
フォーカスのあるセル位置の取得と設定を行うサンプル・プログラム(C#版) |
|
' フォーカスのあるセル位置を取得するサンプル・コード
Dim curCell As DataGridCell = DataGrid1.CurrentCell
MessageBox.Show( _
"フォーカス・セルの" & vbCrLf & _
"行番号は" & curCell.RowNumber & "、" & _
"列番号は" & curCell.ColumnNumber & "です。")
' セル位置を指定してフォーカスを設定するサンプル・コード
' 例:1行1列目のセルにフォーカスを設定。
DataGrid1.CurrentCell = New DataGridCell(1, 1)
|
|
フォーカスのあるセル位置の取得と設定を行うサンプル・プログラム(VB.NET版) |
|
上の例では、セルの行番号と列番号を指定してフォーカスの取得と設定を行っている。これ以外の方法では、セルの列番号は指定せずにセルの行番号のみを指定してフォーカスを取得/設定することもできる。これには、CurrentCellプロパティの替わりにDataGridクラスのCurrentRowIndexプロパティを使用すればよい。CurrentRowIndexプロパティでは、行インデックス(=行番号)が取得/設定できる。
DataGridコントロールでは選択とフォーカスは別物
なお、DataGridコントロールでは、行の選択はセルのフォーカスとは別物で、必ずしも一致するとは限らない。例えば次の画面のように、1行1列目にフォーカスを置いたまま、3行目を選択したり選択解除したりすることができる。
|
行選択とセル・フォーカスの違い |
選択された行とフォーカスのあるセル(の行)は必ずしも一致するとは限らない。 |
|
|
1行1列目にフォーカスが設定されている。このフォーカスのあるセルに対してキーボード入力を行うことができる(行番号と列番号は0番から開始)。 |
|
|
3行目が選択されている。キーボード入力は選択された行ではなく、フォーカスのあるのセルに対して行われる。 |
|
行を選択するにはDataGridクラスのSelectメソッドを使い、選択を解除するにはUnSelectメソッドを使う。特定の行が選択されているかどうか調べるには、パラメータに行番号を指定してIsSelectedメソッドを呼び出せばよい。
カテゴリ:Windowsフォーム 処理対象:DataGridコントロール(System.Windows.Forms名前空間)
使用ライブラリ:DataGridコントロール(System.Windows.Forms)
使用ライブラリ:DataGridCell構造体(System.Windows.Forms) |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間