怎样捕获控件上按没按Tab键?

CandyCxl 2002-12-04 02:06:48
用keyDown事件能捕获Enter, delete, 上下左右移动等按键, 可是按tab键, 由于焦点的移动, 不能捕捉, 请问怎样捕获控件上按没按Tab键? 谢谢了!!!!!
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CandyCxl 2002-12-04
  • 打赏
  • 举报
回复
dy_2000_abc(芝麻开门), 谢谢了.
CandyCxl 2002-12-04
  • 打赏
  • 举报
回复
但是如果我要按tab键激发一个事件,必须用lostFocus事件去判断,但引起LostFocus的原因有两个: tab键或鼠标, 这有很多不便. 有没有方法直接判断是否按了tab键?????
dy_2000_abc 2002-12-04
  • 打赏
  • 举报
回复
我猜你是在KeyDown中无法捕捉到Tab键。
原因是Tab键不由控件处理,它被.net运行时过滤掉了。要使控件响应Tab键,你需要重写控件的IsInputKey方法。
public class myButton:Button
{
protected override bool IsInputKey(Keys key)
{
if (key==Keys.Tab)
return true;
return base.IsInputKey(key);
}
}
这样,你使用myButton就可以在KeyDown中处理Tab键了。
Button button1=new myButton;
private void button1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode==Keys.Tab)
MessageBox.Show("");
}
qieyj 2002-12-04
  • 打赏
  • 举报
回复
你给每一个控件都设置tabindex值,然后看一下Control.Focus()是否是true,
如果是true,那说明你的tab已经按下了
yarshray 2002-12-04
  • 打赏
  • 举报
回复
?????
>>请问怎样捕获控件上按没按Tab键?

if(Control.Focus())
看看是否接收输入焦点就知道了

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧