Я работаю над программой с DataGridViews
. который может редактироваться пользователем. Когда пользователь закончил вводить числа, ...
Я работаю над программой с DataGridViews
. который может редактироваться пользователем. Когда пользователь закончит вводить числа, ...
Я работаю над программой с DataGridViews
.
В одном DatagridView
есть DataGridViewTextBoxColumn
, который может редактироваться пользователем. Когда пользователь закончит вводить числа, он нажимает клавишу ВВОД на клавиатуре. Теперь DataGridView
выполняет все свои События
, а после всех событий
, проблема в последнюю очередь.
Все готово, и Windows собирается выбрать следующий DataGridViewRow
, и я не могу предотвратить это.
Я пробовал
if (e.KeyData == Keys.Enter) e.SuppressKeyPress = true; // or e.Handled
почти во всех обнаруженных мной событиях. К сожалению, мне удалось предотвратить нажатие клавиши ENTER только тогда, когда DataGridViewTextBoxColumn
не находится в режиме редактирования.
Вот мой метод, чтобы найти ENTER при редактировании
Добавление события
private void dgr_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress += new KeyPressEventHandler(dgr_KeyPress_NumericTester);
}
И это событие принимает только числовой ввод.
private void dgr_KeyPress_NumericTester(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8) e.Handled = true;
}
Чтобы объяснить подробно:
Когда пользователь вводит значение, которое имеет некоторые зависимости, я хотел бы дать другому элементу управления фокус, чтобы он использовался для исправления зависимостей.
Я также пробовал это с VerifiedControl.Focus ()
, но последний "ввод" будет последним в представлении.
Кто-нибудь знает, как это предотвратить?