#c#
#c#
Вопрос:
У меня есть этот код в Windows form, который вызывает функцию, которая вычисляет число:
private void KeyDown_Accion_Teclas(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Add || e.KeyCode == Keys.Oemplus)
{
cmdAlta_Click(sender, e);
}
}
Но в любом текстовом поле, которое сфокусировано или выделено, когда я нажимаю
кнопку для вызова функции, она записывает символ
.
Я только хочу вызвать функцию, но не писать
символ. Ничего из того, что я пробовал, не сработало.
Есть идеи?
Комментарии:
1. Не могли бы вы, пожалуйста, указать более подробную информацию о коде? Например, вам нужно показать обработчик события, внутри которого записан приведенный выше оператор if. Это поможет авторам помочь вам с вашими проблемами.
2. Привет, Ятин, конечно, в форме обработчиком события является этот код:
this.KeyDown = new System.Windows.Forms.KeyEventHandler(this.KeyDown_Accion_Teclas);
3. Попробуйте добавить:
e.SuppressKeyPress = true; e.Handled = true;
в качестве первых двух строк в вашемif
блоке (предполагая, что это вKeyPress
случаеTextBox
элемента управления)4. Смотрите здесь документацию о том, как обрабатывать ключевые события на уровне формы: learn.microsoft.com/en-us/dotnet/framework/winforms /… . Обратите внимание на подробно описанные там сведения о том, как это правильно настроить…
Ответ №1:
private void KeyDown_Accion_Teclas(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Add || e.KeyCode == Keys.Oemplus)
{
cmdAlta_Click(sender, e);
e.SuppressKeyPress = true;
}
}
Или, может быть:
private void KeyDown_Accion_Teclas(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Add || e.KeyCode == Keys.Oemplus)
{
e.SuppressKeyPress = true;
cmdAlta_Click(sender, null);
}
}