怎么拦截 Up Down Left Right Tab 键? Form 的KeyPreview属性设置为True,KeyDown事件也拦截不到 Up Down Left Right Tab按键,或者 UserControl 也拦截不到,有什么方法可以实现呢?听说控件重载可以,重载的控件怎么使用呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected override void WndProc(ref Message m) { const int VK_LEFT = 0x25; const int VK_UP = 0x26; const int VK_RIGHT = 0x27; const int VK_DOWN = 0x28; const int WM_KEYDOWN = 0x0100; if (m.Msg == WM_KEYDOWN &&((int)m.WParam == VK_LEFT || (int)m.WParam == VK_UP || (int)m.WParam == VK_RIGHT || (int)m.WParam == VK_DOWN)) { MessageBox.Show("按下了上下左右键"); } base.WndProc(ref m); //这一步很重要。 }你还可以分别来判断不同的按键。自己试试吧。 to kkk_visual(不学无术) :还是不行啊,除了Tab 和四个方向键其他都有反应。是不是和窗体上的控件有关系呢? 要让 TAB、RETURN、ESCAPE 和箭头键引发KEYDOWN事件,必须重写窗体或控件的 IsInputKey 方法,在该方法里确定是否按下了某一个特殊键,并且需要返回一个 true 值,这样就可以在KEYDOWN事件里响应方向键了 非常感谢 maybelian(maybelian) ! 协变与抗变 具体含义??? C#程序 调试程序的时候出错了 OracleCommand对执行sql语句有无约束? 泛型类的用法 大家推荐一家 支持.net2.0价格公道速度快的空间商吧! 父类型的子类,如何调到子类的方法。 table合并问题 textbox进行绑定后的疑问? SOS:如何提取EXE文件中的图片,最好有可以导入导出的方法!谢谢! DropDownList问题,绑定数据重复显示两遍!非常感谢! C#的效率就这么低吗?难道是因为C++与c#的构架差异!高手请进!
{
const int VK_LEFT = 0x25;
const int VK_UP = 0x26;
const int VK_RIGHT = 0x27;
const int VK_DOWN = 0x28;
const int WM_KEYDOWN = 0x0100; if (m.Msg == WM_KEYDOWN &&((int)m.WParam == VK_LEFT || (int)m.WParam == VK_UP || (int)m.WParam == VK_RIGHT || (int)m.WParam == VK_DOWN))
{
MessageBox.Show("按下了上下左右键");
}
base.WndProc(ref m); //这一步很重要。
}
你还可以分别来判断不同的按键。自己试试吧。
还是不行啊,除了Tab 和四个方向键其他都有反应。
是不是和窗体上的控件有关系呢?