DataGridView.RowDirtyStateNeeded Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando la propiedad VirtualMode del control DataGridView es true
y el control DataGridView necesita determinar si se confirmaron los cambios de la fila actual.
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
Tipo de evento
Ejemplos
En el ejemplo de código siguiente se muestra cómo controlar este evento para proporcionar ámbito de confirmación de nivel de celda, lo que significa que el usuario solo puede revertir los cambios a la celda actual. En el ámbito de confirmación de nivel de celda, la fila se trata de tener cambios sin confirmar solo cuando la celda actual tiene cambios no confirmados, en lugar de cuando cualquier celda de la fila tiene cambios no confirmados. Este ejemplo forma parte de un ejemplo más grande disponible en Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.
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
Comentarios
De forma predeterminada, este evento establece la QuestionEventArgs.Response propiedad true
en si se han modificado celdas de la fila actual. Esto hace que el CancelRowEdit evento se produzca cuando el usuario revierte las modificaciones a una fila. Los usuarios pueden revertir las modificaciones a una fila presionando ESC dos veces cuando una celda está en modo de edición o una vez fuera del modo de edición. Este evento se puede usar para personalizar el ámbito de confirmación en modo virtual estableciendo la QuestionEventArgs.Response propiedad en el valor correcto según el ámbito de confirmación elegido.
Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.