c# 按钮获取焦点问题 请教。。。

王安之 2012-11-22 03:36:11
听我细细道来。。。
背景: 一个winform窗体,窗体上一个panle,panle上动态的加载一些自定义的组件,比如userButton 这个组件继承的Button;当窗体加载的时候,我根据条件加载上了一些userButton 比如加载了20个。我现在要实现这样一个功能,默认焦点在第一个userButton上,当按上下左右根据坐标找到对应的userButton;
要求: 找到对应的按钮并设置焦点在这个按钮上(主要是实现回车键点击)
现象: 现在我能找到,但是有一个问题,比如我找到了userButton5这个按钮,我此时要把窗体焦点设置到这个按钮上。
我用过的方法: userButton5.Focus();失败!userButton5.Select();失败!this.ActiveControl=userButton5;失败!这三个方法的组合设置,同样失败。。。。
结果: 我崩溃了
各位大神帮帮忙吧!!还有没有其他方法,或者说,可能是什么原因引起的呢??
...全文
666 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
王安之 2012-11-22
  • 打赏
  • 举报
回复
引用 11 楼 hjywyj 的回复:
引用 8 楼 wanganzhi0123 的回复: 我就是这样获取的,但是没有效果。。。 var ary = panle1.Controls.OfType<Button>().ToArray(); 你看看ary里面有没有东西
刚看了,ary里有东西,140个按钮都有。。。。
王安之 2012-11-22
  • 打赏
  • 举报
回复
引用 12 楼 DENQH 的回复:
只要你Focus()设在第一个上,把TabIndex设好就行了。
你说的对,但是用tab选择的时候它只是左右动,不会上下动。。用方向键也是,所以才要重写的。。
DENQH 2012-11-22
  • 打赏
  • 举报
回复
只要你Focus()设在第一个上,把TabIndex设好就行了。
  • 打赏
  • 举报
回复
引用 8 楼 wanganzhi0123 的回复:
我就是这样获取的,但是没有效果。。。
var ary = panle1.Controls.OfType<Button>().ToArray(); 你看看ary里面有没有东西
王安之 2012-11-22
  • 打赏
  • 举报
回复
您理解错了,我不是要用enter键实现获取焦点,我是用方向键来获取。。
稻庄 2012-11-22
  • 打赏
  • 举报
回复

 if (e.KeyCode == Keys.Enter)
                    button1.Focus();     
王安之 2012-11-22
  • 打赏
  • 举报
回复
引用 6 楼 hjywyj 的回复:
引用 5 楼 wanganzhi0123 的回复: 刚才试了试,不可以。。 有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1; panle1.Controls没法获取button?
我就是这样获取的,但是没有效果。。。
王安之 2012-11-22
  • 打赏
  • 举报
回复
引用 4 楼 bdmh 的回复:
没问题 比如 button6.Focus();估计是你代码控制不好吧
版主。。因为这个窗体代码很多,不是我写的,您老感觉是什么原因引起的呢?我在另外一个窗体,情况类似,同样的方法,就可以设置focus;
  • 打赏
  • 举报
回复
引用 5 楼 wanganzhi0123 的回复:
刚才试了试,不可以。。 有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1;
panle1.Controls没法获取button?
王安之 2012-11-22
  • 打赏
  • 举报
回复
刚才试了试,不可以。。 有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1;
bdmh 2012-11-22
  • 打赏
  • 举报
回复
没问题 比如 button6.Focus();估计是你代码控制不好吧
夏小安Lily 2012-11-22
  • 打赏
  • 举报
回复
AcceptButton这个是窗体的属性,,不要引入命名空间的,,直接在窗体的加载事件里面写上: 比如把button1设为窗体的AcceptButton。 this.AcceptButton = button1;
王安之 2012-11-22
  • 打赏
  • 举报
回复
哥哥,没明白你要干啥?我要的是设置焦点。。。。
心灵彩虹 2012-11-22
  • 打赏
  • 举报
回复
Button1_Click(null,null)

110,549

社区成员

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

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

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