DataGridView.CommitEdit(DataGridViewDataErrorContexts) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
編集モードを終了せずに、現在のセルの変更をデータ キャッシュにコミットします。
public:
bool CommitEdit(System::Windows::Forms::DataGridViewDataErrorContexts context);
public bool CommitEdit (System.Windows.Forms.DataGridViewDataErrorContexts context);
member this.CommitEdit : System.Windows.Forms.DataGridViewDataErrorContexts -> bool
Public Function CommitEdit (context As DataGridViewDataErrorContexts) As Boolean
パラメーター
- context
- DataGridViewDataErrorContexts
エラーが発生する可能性のあるコンテキストを指定する DataGridViewDataErrorContexts 値のビットごとの組み合わせ。
戻り値
変更がコミットされた場合は true
。それ以外の場合は false
。
例外
セル値をコミットできませんでした。また、DataError イベントのハンドラーがないか、ハンドラーが ThrowException プロパティを true
に設定しています。
例
次のコード例では、イベント ハンドラー内で CommitEdit メソッドを CurrentCellDirtyStateChanged 呼び出して、 イベントを CellValueChanged 発生させます。 このコード例は、「方法: Windows フォーム DataGridView コントロールのボタン列のボタンを無効にする」で提供されるより大きな例の一部です。
// This event handler manually raises the CellValueChanged event
// by calling the CommitEdit method.
void dataGridView1_CurrentCellDirtyStateChanged(object sender,
EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
// If a check box cell is clicked, this event handler disables
// or enables the button in the same row as the clicked cell.
public void dataGridView1_CellValueChanged(object sender,
DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "CheckBoxes")
{
DataGridViewDisableButtonCell buttonCell =
(DataGridViewDisableButtonCell)dataGridView1.
Rows[e.RowIndex].Cells["Buttons"];
DataGridViewCheckBoxCell checkCell =
(DataGridViewCheckBoxCell)dataGridView1.
Rows[e.RowIndex].Cells["CheckBoxes"];
buttonCell.Enabled = !(Boolean)checkCell.Value;
dataGridView1.Invalidate();
}
}
' This event handler manually raises the CellValueChanged event
' by calling the CommitEdit method.
Sub dataGridView1_CurrentCellDirtyStateChanged( _
ByVal sender As Object, ByVal e As EventArgs) _
Handles dataGridView1.CurrentCellDirtyStateChanged
If dataGridView1.IsCurrentCellDirty Then
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
End If
End Sub
' If a check box cell is clicked, this event handler disables
' or enables the button in the same row as the clicked cell.
Public Sub dataGridView1_CellValueChanged(ByVal sender As Object, _
ByVal e As DataGridViewCellEventArgs) _
Handles dataGridView1.CellValueChanged
If dataGridView1.Columns(e.ColumnIndex).Name = "CheckBoxes" Then
Dim buttonCell As DataGridViewDisableButtonCell = _
CType(dataGridView1.Rows(e.RowIndex).Cells("Buttons"), _
DataGridViewDisableButtonCell)
Dim checkCell As DataGridViewCheckBoxCell = _
CType(dataGridView1.Rows(e.RowIndex).Cells("CheckBoxes"), _
DataGridViewCheckBoxCell)
buttonCell.Enabled = Not CType(checkCell.Value, [Boolean])
dataGridView1.Invalidate()
End If
End Sub
注釈
このメソッドは、書式設定されたユーザー指定の値を基になるセル データ型に変換しようとします。 これを行うには、 イベントが CellParsing 発生します。イベントを処理して型変換をカスタマイズできます。 それ以外の場合は、既定の型コンバーターが使用されます。 変換エラーが発生すると、イベントを回避するためにイベントが DataError 処理されない場合、例外が発生する可能性があります。 値が正常に変換されると、その値はデータ ストアにコミットされ、プロパティ値が の場合、データ バインドされていないセルのイベントがVirtualModetrue
発生CellValuePushedします。 値が正常にコミットされると、イベントが CellValueChanged 発生します。
適用対象
こちらもご覧ください
.NET