当前位置:编程学习 > C#/ASP.NET >>

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

听我细细道来。。。
背景:  一个winform窗体,窗体上一个panle,panle上动态的加载一些自定义的组件,比如userButton  这个组件继承的Button;当窗体加载的时候,我根据条件加载上了一些userButton 比如加载了20个。我现在要实现这样一个功能,默认焦点在第一个userButton上,当按上下左右根据坐标找到对应的userButton;
要求:  找到对应的按钮并设置焦点在这个按钮上(主要是实现回车键点击)
现象:  现在我能找到,但是有一个问题,比如我找到了userButton5这个按钮,我此时要把窗体焦点设置到这个按钮上。
我用过的方法:  userButton5.Focus();失败!userButton5.Select();失败!this.ActiveControl=userButton5;失败!这三个方法的组合设置,同样失败。。。。
结果:  我崩溃了
各位大神帮帮忙吧!!还有没有其他方法,或者说,可能是什么原因引起的呢??
--------------------编程问答--------------------    Button1_Click(null,null) --------------------编程问答-------------------- 哥哥,没明白你要干啥?我要的是设置焦点。。。。 --------------------编程问答-------------------- AcceptButton这个是窗体的属性,,不要引入命名空间的,,直接在窗体的加载事件里面写上:

比如把button1设为窗体的AcceptButton。

this.AcceptButton =  button1;
--------------------编程问答-------------------- 没问题 比如 button6.Focus();估计是你代码控制不好吧 --------------------编程问答-------------------- 刚才试了试,不可以。。
有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1; --------------------编程问答--------------------
引用 5 楼 wanganzhi0123 的回复:
刚才试了试,不可以。。
有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1;

panle1.Controls没法获取button? --------------------编程问答--------------------
引用 4 楼 bdmh 的回复:
没问题 比如 button6.Focus();估计是你代码控制不好吧


版主。。因为这个窗体代码很多,不是我写的,您老感觉是什么原因引起的呢?我在另外一个窗体,情况类似,同样的方法,就可以设置focus; --------------------编程问答--------------------
引用 6 楼 hjywyj 的回复:
引用 5 楼 wanganzhi0123 的回复:
刚才试了试,不可以。。
有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1;
panle1.Controls没法获取button?

我就是这样获取的,但是没有效果。。。 --------------------编程问答--------------------

 if (e.KeyCode == Keys.Enter)
                    button1.Focus();     
--------------------编程问答-------------------- 您理解错了,我不是要用enter键实现获取焦点,我是用方向键来获取。。 --------------------编程问答--------------------
引用 8 楼 wanganzhi0123 的回复:
我就是这样获取的,但是没有效果。。。

  var ary = panle1.Controls.OfType<Button>().ToArray();
你看看ary里面有没有东西 --------------------编程问答-------------------- 只要你Focus()设在第一个上,把TabIndex设好就行了。 --------------------编程问答--------------------
引用 12 楼 DENQH 的回复:
只要你Focus()设在第一个上,把TabIndex设好就行了。

你说的对,但是用tab选择的时候它只是左右动,不会上下动。。用方向键也是,所以才要重写的。。 --------------------编程问答--------------------
引用 11 楼 hjywyj 的回复:
引用 8 楼 wanganzhi0123 的回复:
我就是这样获取的,但是没有效果。。。
  var ary = panle1.Controls.OfType<Button>().ToArray();
你看看ary里面有没有东西

刚看了,ary里有东西,140个按钮都有。。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,