方法 : Windows フォーム DataGridView コントロールのセルの変更に基づいてカスタム動作を実行する
更新 : 2007 年 11 月
DataGridView コントロールには多数のイベントがあり、これらを使用して DataGridView セルの状態の変更を検出できます。最もよく使用されるイベントは CellValueChanged イベントと CellStateChanged イベントの 2 つです。
DataGridView セルの値の変更を検出するには
CellValueChanged イベントのハンドラを記述します。
Private Sub dataGridView1_CellValueChanged(ByVal sender As Object, _ ByVal e As DataGridViewCellEventArgs) _ Handles dataGridView1.CellValueChanged Dim msg As String = String.Format( _ "Cell at row {0}, column {1} value changed", _ e.RowIndex, e.ColumnIndex) MessageBox.Show(msg, "Cell Value Changed") End Sub
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { string msg = String.Format( "Cell at row {0}, column {1} value changed", e.RowIndex, e.ColumnIndex); MessageBox.Show(msg, "Cell Value Changed"); }
DataGridView セルの状態の変更を検出するには
CellStateChanged イベントのハンドラを記述します。
Private Sub dataGridView1_CellStateChanged(ByVal sender As Object, _ ByVal e As DataGridViewCellStateChangedEventArgs) _ Handles dataGridView1.CellStateChanged Dim state As DataGridViewElementStates = e.StateChanged Dim msg As String = String.Format( _ "Row {0}, Column {1}, {2}", _ e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged) MessageBox.Show(msg, "Cell State Changed") End Sub
private void dataGridView1_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e) { DataGridViewElementStates state = e.StateChanged; string msg = String.Format("Row {0}, Column {1}, {2}", e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged); MessageBox.Show(msg, "Cell State Changed"); }
コードのコンパイル方法
この例で必要な要素は次のとおりです。
dataGridView1 という名前の DataGridView コントロール。C# の場合は、イベント ハンドラを対応するイベントに接続しておく必要があります。
System アセンブリおよび System.Windows.Forms アセンブリへの参照。
参照
処理手順
チュートリアル : Windows フォーム DataGridView コントロールのデータの妥当性検査