共用方式為


DataGridView.RowDirtyStateNeeded 事件

定義

發生於 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 為正確的值。

如需如何處理事件的詳細資訊,請參閱 處理和引發事件

適用於

另請參閱