powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView отловить нажатие клавиши Пробел
2 сообщений из 2, страница 1 из 1
DataGridView отловить нажатие клавиши Пробел
    #38375722
Zum-Zum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск решения не дал.
Когда фокус ввода находится на ячейке в определённом столбце, то необходимо по нажатию клавиши Пробел поменять свойство ReadOnly этой ячейки на противоположное. Для этого в событии KeyPress грида проверяю e.KeyChar == 32 и меняю ReadOnly. Если нажатие происходит в момент, когда ReadOnly=true, то событие вызывается, а когда ReadOnly=false - не вызывается, а ячейка переходит в режим редактирования, и в неё вводится этот пробел. Такое поведение не нужно. Переход в режим редактирования нужен только при нажатии цифр и букв. Что можно предпринять?
...
Рейтинг: 0 / 0
DataGridView отловить нажатие клавиши Пробел
    #38376839
Zum-Zum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напрямую решения, я так понял, не существует.
Обошел проблему, используя свойство EditingControl и метод EditingControlShowing класса DataGridView.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    dgv.EditingControl.KeyPress -= new KeyPressEventHandler(EditingControl_KeyPress);
    dgv.EditingControl.KeyPress += new KeyPressEventHandler(EditingControl_KeyPress);
}

private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
{
    if (dgv.Columns[dgv.CurrentCell.ColumnIndex].Name == "Summa")
    {
        if (e.KeyChar == ' ' && !dgv.IsCurrentCellDirty)
        {
            dgv.CancelEdit();
            dgv.EndEdit();
            dgv.CurrentRow.Cells["Ready"].Value = true; // дополнительное действие
            e.Handled = true;
        }
    }
}
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView отловить нажатие клавиши Пробел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]