C# WinForm的一个问题,请教 问题: 假设一个winform应用程序,界面上有三个button,那么当一个button获得焦点时,用上下左右按键可以移动焦点我想要的效果就是: 按上下左右键时,不进行焦点的移动请问如何实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在窗体中重载下面代码 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Left) { return true; } return base.ProcessCmdKey(ref msg, keyData); } protected override bool ProcessCmdKey(ref Message msg, Keys keyData){ switch (keyData) { case Keys.Up: MessageBox.Show("Up"); return true; case Keys.Down: MessageBox.Show("Down"); return true; case Keys.Left: MessageBox.Show("Left"); return true; case Keys.Right: MessageBox.Show("Right"); return true; } return base.ProcessCmdKey(ref msg, keyData);} 谢谢bdmh,这个方法挺强大的,我还有一个问题想请教一下通过你的方法已经禁用了焦点的移动,另外,我也定制了一个可以接受键盘事件响应的panle,可为什么panel无法处理上下左右的键盘事件呢??其他按键都可以 谢谢各位,就我第二个问题,有何高见呢?我要实现的大致功能是:点击button,然后将焦点移动到一个定制panel,然后改panel需要响应上下左右的按键事件通过上面的方法可以在panel聚焦时,按上下左右按键时,不会失去焦点,但为何对上下左右没有响应呢? switch (keyData) { case Keys.Up: case Keys.Down: case Keys.Left: case Keys.Right: if(button1.Focused) return true; } 如何对null值进行处理呢?imaxid = (int)command.ExecuteScalar(); 串口收发影响界面运行 ado.net 究竟如何支持 autotranslate 属性.? 寻找全局临时表在c#里的正确使用方法 C#+JQ问题求高手解答...... 把记事本里的数据转换格式在EXCEL中输出 多文档窗体的主窗体的背景图如何设置? 时间格式 为什么 不建议更改线程池中的最大线程数 请问在C#里怎样在数据链路层截获数据包? 指定的参数已超出有效值的范围。 yield 语句疑问
{
if (keyData == Keys.Left)
{
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
{
switch (keyData)
{
case Keys.Up:
MessageBox.Show("Up");
return true;
case Keys.Down:
MessageBox.Show("Down");
return true;
case Keys.Left:
MessageBox.Show("Left");
return true;
case Keys.Right:
MessageBox.Show("Right");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
if(button1.Focused)
return true;
}