我要在类中写一个鼠标按下事件Test_MouseDown
我要先在类的构造函数中注册
public class Test
{
public Test()
{
this.MouseDown +=new MouseEventHandler(Test_MouseDown);
}
}
这个可以,因为写上面那条语句的时候this点,就可以点出MouseDown来我现在是要实现键盘按下事件,也这样实现,可是this.的时候只有OnKeyDown,是个方法组,不能像上面那样.
我现在就是要在一个类中判断哪一个键是否按下
怎么实现???在线等高手......
我要先在类的构造函数中注册
public class Test
{
public Test()
{
this.MouseDown +=new MouseEventHandler(Test_MouseDown);
}
}
这个可以,因为写上面那条语句的时候this点,就可以点出MouseDown来我现在是要实现键盘按下事件,也这样实现,可是this.的时候只有OnKeyDown,是个方法组,不能像上面那样.
我现在就是要在一个类中判断哪一个键是否按下
怎么实现???在线等高手......
protected override void WndProc(ref Message m)
{
截获Windows消息
}
要怎么写
写出代码
if(ctrl按下)
{
////代码
}
if ((e.Modifiers & Keys.Control) == Keys.Control)
只不过,若Form上还有控件的话,按钮事件只会发送给拥有焦点的控件。可以把Form的KeyPreview属性设为true。
if((int)e.keyChar == 2)
{
//你要的代码
//2貌似是Ctrl的键值
}
this点不出KeyDown来
派生可以改写OnKeyDown方法的,在这个方法中判断也是一样的。
private void txtData_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
MessageBox.Show("Ctrl+A");
if (e.Alt && e.KeyCode == Keys.A)
MessageBox.Show("Alt+A");
if (e.Shift && e.KeyCode == Keys.A)
MessageBox.Show("Shift+A");
}
{
if ((int)m.WParam == WM_DEVICEARRVIAL)
{
}
base.WndProc(ref m);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.A: break;
case Keys.B: break;
case Keys.Enter:
A(sender, e); break;
}
}