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;
        }
    }

Сказав это, я не вижу, что делает этот код...

Другие вопросы по тегам