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; --------------------编程问答--------------------
panle1.Controls没法获取button? --------------------编程问答--------------------
版主。。因为这个窗体代码很多,不是我写的,您老感觉是什么原因引起的呢?我在另外一个窗体,情况类似,同样的方法,就可以设置focus; --------------------编程问答--------------------
我就是这样获取的,但是没有效果。。。 --------------------编程问答--------------------
--------------------编程问答-------------------- 您理解错了,我不是要用enter键实现获取焦点,我是用方向键来获取。。 --------------------编程问答--------------------
if (e.KeyCode == Keys.Enter)
button1.Focus();
var ary = panle1.Controls.OfType<Button>().ToArray();
你看看ary里面有没有东西 --------------------编程问答-------------------- 只要你Focus()设在第一个上,把TabIndex设好就行了。 --------------------编程问答--------------------
你说的对,但是用tab选择的时候它只是左右动,不会上下动。。用方向键也是,所以才要重写的。。 --------------------编程问答--------------------
刚看了,ary里有东西,140个按钮都有。。。。
补充:.NET技术 , C#