我有一个没有任何控制的简单形式 . 我在表单级别定义了KeyDown,KeyPress和KeyUp事件 . KeyPreview属性设置为true . 代码如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.KeyPreview = true;
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show("KeyDown.");
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show("KeyPress.");
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
MessageBox.Show("KeyUp.");
}
}
问题是:如何强制KeyUp事件触发,因为每次按Shift键时KeyDown事件都会一直触发,但是没有触发KeyUp?或者,有没有可靠的方法来检测Shift键释放,通过另一种方法,而不是使用KeyUp事件?