DataGridView.RowDirtyStateNeeded 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生於 VirtualMode 控制項的 DataGridView 屬性為 true
,且 DataGridView 需要判斷目前的資料列是否有未經認可的變更時。
public:
event System::Windows::Forms::QuestionEventHandler ^ RowDirtyStateNeeded;
public event System.Windows.Forms.QuestionEventHandler RowDirtyStateNeeded;
public event System.Windows.Forms.QuestionEventHandler? RowDirtyStateNeeded;
member this.RowDirtyStateNeeded : System.Windows.Forms.QuestionEventHandler
Public Custom Event RowDirtyStateNeeded As QuestionEventHandler
事件類型
範例
下列程式碼範例示範如何處理此事件以提供資料格層級認可範圍,這表示使用者只能將變更還原為目前的儲存格。 在資料格層級認可範圍中,只有在目前儲存格有未認可的變更時,資料列才會被視為具有未認可的變更,而不是當資料列中的任何資料格有未認可的變更時。 此範例是逐步解說:在 Windows Forms DataGridView 控制項中實作虛擬模式中較大範例的一部分。
void dataGridView1_RowDirtyStateNeeded( Object^ /*sender*/,
System::Windows::Forms::QuestionEventArgs^ e )
{
if ( !rowScopeCommit )
{
// In cell-level commit scope, indicate whether the value
// of the current cell has been modified.
e->Response = this->dataGridView1->IsCurrentCellDirty;
}
}
private void dataGridView1_RowDirtyStateNeeded(object sender,
System.Windows.Forms.QuestionEventArgs e)
{
if (!rowScopeCommit)
{
// In cell-level commit scope, indicate whether the value
// of the current cell has been modified.
e.Response = this.dataGridView1.IsCurrentCellDirty;
}
}
Private Sub dataGridView1_RowDirtyStateNeeded(ByVal sender As Object, _
ByVal e As System.Windows.Forms.QuestionEventArgs) _
Handles dataGridView1.RowDirtyStateNeeded
If Not rowScopeCommit Then
' In cell-level commit scope, indicate whether the value
' of the current cell has been modified.
e.Response = Me.dataGridView1.IsCurrentCellDirty
End If
End Sub
備註
根據預設,如果修改目前資料列中的任何儲存格,這個事件會將 QuestionEventArgs.Response 屬性設定為 true
。 這會導致 CancelRowEdit 使用者將編輯還原為數據列時發生此事件。 使用者可以在儲存格處於編輯模式或編輯模式外按 ESC 兩次,將編輯還原為數據列。 視所選的認可範圍而定,這個事件可用於在虛擬模式中自訂認可範圍,方法是將 屬性設定 QuestionEventArgs.Response 為正確的值。
如需如何處理事件的詳細資訊,請參閱 處理和引發事件。