NotAComputerScienceStudent Ответов: 2

Ошибка обработки событий клавиатуры


В основном я пытаюсь создать программу, которая может обрабатывать события клавиатуры, но она продолжает выплевывать ошибку.

cannot assign to 'keydown' because it is a 'method group'


Ошибка
Form1.Keypress(object, KeyPressEventsArg)' hides inherited method 'Control.KeyPress'. Use the new Keboard if hiding was intended 


Две программы, которые я использовал, были
private void KeyDown(object sender, KeyEventArgs e)
       {
           if(e.KeyCode == Keys.Enter)
           {
               MessageBox.Show("Enter Key Pressed");
           }
       }

       private void KeyUp(object sender, KeyEventArgs e)
       {

       }

       private void KeyPress(object sender, KeyPressEventArgs e)
       {
           if(e.KeyChar == (char)Keys.Enter)
           {
               MessageBox.Show("Enter was pressed");
           }
       }


А другой был
private new void KeyDown(object sender, KeyEventArgs e)
        {
            Input.ChangedState(e.KeyCode, true);
        }

        private new void KeyUp(object sender, KeyEventArgs e)
        {
            Input.ChangedState(e.KeyCode, false);
        }


public static Hashtable KeyBoard = new Hashtable();

public static bool KeyPressed(Keys key)
{
    if (KeyBoard[key] == null)
    {
        return false;
    }
    else
    {
        return (bool)KeyBoard[key];
    }

}
public static void ChangedState(Keys key, bool state)
{
    KeyBoard[key] = state;
}


Что я уже пробовал:

Я попробовал использовать решения vs, но ни одно из них не работает

2 Ответов

Рейтинг:
4

phil.o

Имена ваших методов мешают либо существующим событиям, либо существующим методам в родительских классах.
Я бы предложил переименовать ваши методы OnKeyDown, OnKeyUp; OnKeyPress и т.д. Или, если ваш метод мешает существующему методу в родительском классе, просто объявите его как override (если указанный метод переопределим, конечно).


Рейтинг:
1

Richard Deeming

В документации есть множество рабочих примеров:
Контроль.Событие Нажатия Клавиши (System.Окна.Формы) | Microsoft Docs[^]