这是我的带有事件处理程序的课程:
public delegate void MyKeyEventHandler(object sender, KeyEventArgs e);
public class KeyEvent
{
public event MyKeyEventHandler keyEvent;
public string key = "";
protected virtual void KeyPressed(KeyEventArgs e)
{
MyKeyEventHandler handler = keyEvent;
if (handler != null)
handler(this, e);
}
public KeyEvent()
{
keyEvent += new MyKeyEventHandler(keyPressed);
}
private void keyPressed(object sender, KeyEventArgs e)
{
key = e.KeyCode.ToString();
}
}
在我的 Form1 中,我有以下代码:(已编辑)
KeyEvent ke = new KeyEvent();
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(ke.key);
}
当我运行表单并按下键盘上的键然后单击按钮时,它会弹出空的 MessageBox。我想要的是每次我按下键盘上的一个键时都会弹出一个 MessageBox 并显示我按下了哪个键。此代码仅用于测试,我不想只是弹出消息框,我需要其他事情的密钥。
注意:处理 Form1 上的事件不是解决方案,我需要在类中处理事件。我制作了一个库。