DataGridView.CancelRowEdit イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
DataGridView コントロールの VirtualMode プロパティが true
され、ユーザーが行内の編集を取り消すと発生します。
public:
event System::Windows::Forms::QuestionEventHandler ^ CancelRowEdit;
public event System.Windows.Forms.QuestionEventHandler CancelRowEdit;
public event System.Windows.Forms.QuestionEventHandler? CancelRowEdit;
member this.CancelRowEdit : System.Windows.Forms.QuestionEventHandler
Public Custom Event CancelRowEdit As QuestionEventHandler
イベントの種類
例
次のコード例は、仮想モードの DataGridView コントロールに対してこのイベントを処理する方法を示しています。 コントロールが編集モードの場合、rowInEdit
変数は編集中の行のインデックスを保持し、customerInEdit
変数はその行に対応する Customer オブジェクトへの参照を保持します。 ユーザーが編集モードからキャンセルすると、このオブジェクトを破棄できます。 ただし、ユーザーが編集していた行が新しいレコードの行である場合、ユーザーが再び編集を開始できるように、古い Customer オブジェクトは破棄され、新しいものに置き換えられます。 この例は、「チュートリアル: Windows フォーム DataGridView コントロールでの仮想モードの実装」で使用できる大きな例の一部です。
void dataGridView1_CancelRowEdit( Object^ /*sender*/,
System::Windows::Forms::QuestionEventArgs^ /*e*/ )
{
if ( this->rowInEdit == this->dataGridView1->Rows->Count - 2 &&
this->rowInEdit == this->customers->Count )
{
// If the user has canceled the edit of a newly created row,
// replace the corresponding Customer object with a new, empty one.
this->customerInEdit = gcnew Customer;
}
else
{
// If the user has canceled the edit of an existing row,
// release the corresponding Customer object.
this->customerInEdit = nullptr;
this->rowInEdit = -1;
}
}
private void dataGridView1_CancelRowEdit(object sender,
System.Windows.Forms.QuestionEventArgs e)
{
if (this.rowInEdit == this.dataGridView1.Rows.Count - 2 &&
this.rowInEdit == this.customers.Count)
{
// If the user has canceled the edit of a newly created row,
// replace the corresponding Customer object with a new, empty one.
this.customerInEdit = new Customer();
}
else
{
// If the user has canceled the edit of an existing row,
// release the corresponding Customer object.
this.customerInEdit = null;
this.rowInEdit = -1;
}
}
Private Sub dataGridView1_CancelRowEdit(ByVal sender As Object, _
ByVal e As System.Windows.Forms.QuestionEventArgs) _
Handles dataGridView1.CancelRowEdit
If Me.rowInEdit = Me.dataGridView1.Rows.Count - 2 AndAlso _
Me.rowInEdit = Me.customers.Count Then
' If the user has canceled the edit of a newly created row,
' replace the corresponding Customer object with a new, empty one.
Me.customerInEdit = New Customer()
Else
' If the user has canceled the edit of an existing row,
' release the corresponding Customer object.
Me.customerInEdit = Nothing
Me.rowInEdit = -1
End If
End Sub
注釈
DataGridView が仮想モードの場合、変更は既定でセル レベルでデータ キャッシュにコミットされます。 CancelRowEdit イベントは、行レベルのトランザクションを実装するときに使用できます。
イベントの処理方法の詳細については、「イベントの処理と発生」を参照してください。
適用対象
こちらもご覧ください
.NET