方法: Windows フォーム DataGridView コントロールのセルの変更に基づいてカスタム動作を実行する
DataGridView コントロールには、DataGridView セルの状態の変化を検出するために使用できる多数のイベントがあります。 最も一般的に使用されるのは CellValueChanged イベントと CellStateChanged イベントです。
DataGridView セルの値の変化を検出するには
CellValueChanged イベントのハンドラーを記述します。
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"); }
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
DataGridView セルの状態の変化を検出するには
CellStateChanged イベントのハンドラーを記述します。
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"); }
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
コードのコンパイル
この例で必要な要素は次のとおりです。
dataGridView1
という名前の DataGridView コントロール。 C# では、イベント ハンドラーが対応するイベントに接続されている必要があります。System アセンブリおよび System.Windows.Forms アセンブリへの参照。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback