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 窗体 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 正确的值。
有关如何处理事件的详细信息,请参阅 处理和引发事件。