C#Button为什么不能设置焦点》

C#Button为什么不能设置焦点》,第1张

C#Button为什么不能设置焦点

我暂时想到的一种方法是用enabled,如下面的例子:

首先所有的不希望焦点停留的按钮设置tabstop属性为false,如有button1和button2不希望获得焦点

button1TabStop = false;

button2TabStop = false;

然后按照原来的重载Click事件如下:

button1Click += new EventHandler(button_click);

button2Click += new EventHandler(button_click);

然后事件响应函数为:

private void button_click(object sender, EventArgs e)

{

Button button = (Button)sender;

//按钮动作代码

//

//

buttonEnabled = false;//这步和下面那步一起可以失去焦点

buttonEnabled = true;

}

就可以使得那个按钮失去焦点了,不过焦点还是会付给第一个tabstop属性为true的控件(之前设置了false就不会)

用上面的方法比较麻烦,可以用另外一种方法,例如你的KeyPress事件不要在form上面,可以是在一个label上,label的内容为空(label1Text = ""),就是在界面是是看不见隐藏的,在程序的form的构造函数里label1Focus()使得程序一开始label1就获取焦点,然后在按钮Click事件的最后写一句label1Focus()就可以把焦点设到要获取KeyPress事件的label1上了(按钮就会失去焦点到label1上),再按照楼主原来的设计就可以了~~~

WindowManager控件要慎用 除非要实现类似360悬浮框那种应用退出还存在的需求 可以用透明样式的activity 在serviced出该背景透明 activity屏蔽back按钮

可以采用API中的消息处理,拦截键盘消息,如果不是方向键,再将消息扔出去。最好重定义窗体的消息处理程序WindowProc。

附件中没有定义WindowProc,而是通过无限循环来做的,但是有可能会有漏掉。可能不太合你用,但是可以研究研究。

以上就是关于C#Button为什么不能设置焦点》全部的内容,包括:C#Button为什么不能设置焦点》、Android 悬浮框 获得焦点并屏蔽按键、VB中如何禁止用方向键移动按钮焦点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9445203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存