DataGridView.RowDirtyStateNeeded Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando a propriedade VirtualMode do controle DataGridView é true
e o DataGridView precisa determinar se a linha atual tem alterações não confirmadas.
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
Exemplos
O exemplo de código a seguir demonstra como lidar com esse evento para fornecer escopo de confirmação no nível da célula, o que significa que o usuário pode reverter alterações somente na célula atual. No escopo de confirmação no nível da célula, a linha é tratada como tendo alterações não confirmadas somente quando a célula atual tiver alterações não confirmadas, em vez de quando qualquer célula na linha tiver alterações não confirmadas. Este exemplo faz parte de um exemplo maior disponível em Passo a passo: implementando o modo virtual no Windows Forms controle 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
Comentários
Por padrão, esse evento define a QuestionEventArgs.Response propriedade como true
se alguma célula na linha atual tiver sido modificada. Isso faz com que o CancelRowEdit evento ocorra quando o usuário reverte edições para uma linha. Os usuários podem reverter edições em uma linha pressionando ESC duas vezes quando uma célula está no modo de edição ou uma vez fora do modo de edição. Esse evento pode ser usado para personalizar o escopo de confirmação no modo virtual definindo a QuestionEventArgs.Response propriedade como o valor correto, dependendo do escopo de confirmação escolhido.
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e levantando eventos.