C# Call KeyEvent внутри события
Я хотел бы вызвать KeyEvent изнутри события. Что-то вроде...
private void txtPostcode_TextChanged(object sender, EventArgs e)
{
TxtboxNumbersOnly(sender, e);
}
Где TxtboxNumbersOnly - это KeyEvent. Однако это не разрешено. Я также пробовал кастинг, но он дает ошибку. Каков будет правильный способ сделать это?
Спасибо, Грант. Фрагмент следует..
private void TxtboxNumbersOnly(object sender, KeyEventArgs e)
{
//Allow arrow keys
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Delete:
e.SuppressKeyPress = false;
return;
Ошибка:
Аргумент 2: невозможно преобразовать из "System.EventArgs" в "System.Windows.Forms.KeyEventArgs".
1 ответ
Решение
Похоже, что вы обрабатываете неправильное событие в первую очередь.
Вы не можете просто пойти и позвонить TxtboxNumbersOnly
потому что у вас нет KeyEventArgs
отправить это. И вы не можете конвертировать EventArgs
так как в этом случае они бывают двух разных типов.
Вы должны обращаться с TextBox.KeyDown
событие. Код должен выглядеть так:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Delete:
e.SuppressKeyPress = false;
return;
}
}
Сказав это, я не вижу, что делает этот код...