Form.KeyPreview=true 后怎么还是有些时候接受不到键盘? Form.KeyPreview=true后,我发现在Form上的控件之间使用left.right等键变换焦点的时候Form并不能接收到left/right键。有没有什么办法可以在空间之间变换焦点时捕捉?或者怎样让Form上的控件永远得不到焦点。我用的vs2005. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这些事件是在窗体类,OnKeyDown,OnKeyUp,OnKeyPress函数里去触发的事件。这些函数,是在窗体类的WndProc里调用的函数。WndProc只处理属于自己的消息。如果你当前焦点不在。可能就无法接收(可能,我不肯定)你可以使用这样:form_load(){ Application.AddMessageFilter(new myMsgFilter());}...public class myMsgFilter : IMessageFilter{ bool IMessageFilter.PreFilterMessage(ref Message m) { if (m.Msg == WM_KEYDOWN)//WM_KEYDOWN自己定义一下 { //这里写键盘响应的代码。 } return OnPreFilterMessage(ref m); }} 实践证明,我这样做可行的。public class myMsgFilter : IMessageFilter{ public const int WM_KEYDOWN = 0x100; public bool PreFilterMessage(ref Message m) { if (m.Msg == WM_KEYDOWN) { if (m.WParam == (IntPtr)9) { return true; } } return false; }}然后private void Form1_Load(object sender, System.EventArgs e){ Application.AddMessageFilter(new myMsgFilter());}整个程序里Table都没用了。 是学 winform 好还是 WPF 好? 关于C#连接MYSQL问题 VS2005中,WINFORM的BindingNavigator的问题 正则表达式问题,100分 数据库存储过程问题 学生管理系统 要C#和SQL 要学什么啊? trackbar控件的使用问题--如何显示刻度数和单位 .net问题 !!!C#高分求借图片上传问题!! 如何处理数据库数据的格式问题? Listview中显示图标的问题 如何为TreeView中的节点添加事件?
{
Application.AddMessageFilter(new myMsgFilter());
}...public class myMsgFilter : IMessageFilter
{
bool IMessageFilter.PreFilterMessage(ref Message m)
{
if (m.Msg == WM_KEYDOWN)//WM_KEYDOWN自己定义一下
{
//这里写键盘响应的代码。
}
return OnPreFilterMessage(ref m);
}
}
{
public const int WM_KEYDOWN = 0x100;
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == WM_KEYDOWN)
{
if (m.WParam == (IntPtr)9)
{
return true;
}
}
return false;
}
}
然后
private void Form1_Load(object sender, System.EventArgs e)
{
Application.AddMessageFilter(new myMsgFilter());
}整个程序里Table都没用了。