DataGridView.RowDirtyStateNeeded Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда VirtualMode свойство DataGridView элемента управления и trueDataGridView необходимо определить, имеет ли текущая строка незафиксированные изменения.
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
Тип события
Примеры
В следующем примере кода показано, как обрабатывать это событие для предоставления области фиксации на уровне ячейки, что означает, что пользователь может вернуть изменения только в текущую ячейку. В области фиксации на уровне ячейки строка обрабатывается как незафиксированные изменения, только если текущая ячейка имеет незафиксированные изменения, а не когда любая ячейка в строке имеет незафиксированные изменения. Этот пример является частью более крупного примера, доступного в пошаговом руководстве. Реализация виртуального режима в элементе управления DataGridView в Windows Forms.
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 свойству правильное значение в зависимости от выбранной области фиксации.
Дополнительные сведения об обработке событий см. в разделе "Обработка и создание событий".