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

解决方案 »

  1.   

       Button1_Click(null,null)
      

  2.   

    AcceptButton这个是窗体的属性,,不要引入命名空间的,,直接在窗体的加载事件里面写上:比如把button1设为窗体的AcceptButton。this.AcceptButton =  button1;
      

  3.   

    没问题 比如 button6.Focus();估计是你代码控制不好吧
      

  4.   

    刚才试了试,不可以。。
    有个问题交代下,这个panle不是直接拖到窗体上的,而是自定义了一个控件,我不能直接获取这个button1;
      

  5.   


    版主。。因为这个窗体代码很多,不是我写的,您老感觉是什么原因引起的呢?我在另外一个窗体,情况类似,同样的方法,就可以设置focus;
      

  6.   


     if (e.KeyCode == Keys.Enter)
                        button1.Focus();     
      

  7.   

    您理解错了,我不是要用enter键实现获取焦点,我是用方向键来获取。。
      

  8.   

      var ary = panle1.Controls.OfType<Button>().ToArray();
    你看看ary里面有没有东西
      

  9.   

    只要你Focus()设在第一个上,把TabIndex设好就行了。
      

  10.   

    你说的对,但是用tab选择的时候它只是左右动,不会上下动。。用方向键也是,所以才要重写的。。
      

  11.   

    刚看了,ary里有东西,140个按钮都有。