разрешить добавление следующей строки только после завершения редактирования - PullRequest
1 голос
/ 23 февраля 2012

Я использую DataGridView и для AllowUserToAddRows установлено значение True, так что, как только вы начнете редактировать строку, в элемент управления добавится еще одна пустая строка.

Однако я бызнать, как предотвратить добавление следующей строки, пока пользователь не завершит ввод данных для строки перед ней.Это означает, что когда все столбцы DataGridView (которые являются текстовыми полями) станут не пустыми, будет добавлена ​​следующая пустая строка.

Моя альтернатива - настроить функцию проверки строк, которая получает вызов, когда пользователь пытается покинуть неполную строку.

1 Ответ

4 голосов
/ 23 февраля 2012

Я бы подумал, что вы установите AllowUserToAddRows на false, а затем добавите обработчик для события изменения ячейки.В обработчике, если редактирование находится в последнем ряду, проверьте, есть ли в них все изменения в этом ряду.Если это так, добавьте строку.

Редактировать: Примерно так:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridView1.RowCount > 0 && e.RowIndex == dataGridView1.RowCount - 1)
    {
        foreach (DataGridViewCell cell in dataGridView1.Rows[e.RowIndex].Cells)
        {
            if (cell.Value == null)
            {
                return;
            }
        }
        dataGridView1.Rows.Add();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...