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 свойству правильное значение в зависимости от выбранного область фиксации.
Дополнительные сведения об обработке событий см. в разделе Обработка и создание событий.