Как вы получаете тот факт, что ячейка таблицы данных была изменена без потери ячейки? - PullRequest
1 голос
/ 18 октября 2011

У меня есть сетка данных с флажком.Дело в том, что когда пользователь нажимает флажок, я сразу хочу выполнить действие.У меня проблема в том, что если я обрабатываю метод щелчка ячейки, он не работает, если пользователь использует клавиатуру.Я могу связать событие currentcelldirtystatechanged, но оно возникает только при первом изменении ячейки, но не в последующие.По сути, я хочу действовать немедленно, а не заставлять пользователя менять ячейку, которая в данный момент находится в фокусе.

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Используйте событие CurrentCellDirtychanged и свойство IsCurrentCellDirty .

// This event handler manually raises the CellValueChanged event
// by calling the CommitEdit method.
void dataGridView1_CurrentCellDirtyStateChanged(object sender,
    EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}
0 голосов
/ 18 октября 2011

Существует событие «CellEnter», которое возникает, когда ячейка получает фокус, однако это может произойти.Возможно, пользователь еще ничего не изменил, но описанное вами поведение (нажатие на ячейку или вкладка в нее / стрелка) не требует этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...