本帖最后由 zyouhua83 于 2009-10-14 14:39:03 编辑

解决方案 »

  1.   

    因为它的child获得了焦点,而不是它本身。
      

  2.   

    你再看清楚再说啊,我知道是child获得了焦点,就是那个UserControl啊
      

  3.   

    DockContent.OnGetFocus += UserControl.OnGetFocus;
      

  4.   

    public MyControl m_tMyControl
      {
          get
          {
              if(null == mMyControl )
                {
                      mMyControl  = new MyControl();
                      mMyControl.Focus();
                }
            }
      } 
      

  5.   

    DockContent.OnGetFocus += UserControl.OnGetFocus;
    这个是我忘记写了,不是这个问题public MyControl m_tMyControl 
      { 
          get 
          { 
              if(null == mMyControl ) 
                { 
                      mMyControl  = new MyControl(); 
                      mMyControl.Focus(); 
                } 
            } 
      } 
    我也试过了,还是不行,因为我发现两个都同时拥有焦点(这是我觉得奇怪的地方)谢谢两位,
      

  6.   

      ovrride void OnGetFoucs(Event e) 
      {
         if(!this.Focused)
          MyClass.fun();   
      } 
      

  7.   

      ovrride void OnGetFoucs(Event e) 
      { 
        if(!this.Focused) 
          MyClass.fun();  
      } 这个等于没说啊
      

  8.   


    第四步:点击第一个DockContent上的标签 为什么第一个DockContent的UserControl的焦点事件OnGetFocus没有发生,怎么解决你又不是点的usercontrol他怎么会触发。
    focused的触发也不是你想的这么简单。
    你用第三方控件,第三方控件内部是怎么封装的。你要试一下。
    你再设置一下tabindex为0
      

  9.   

    你又不是点的usercontrol他怎么会触发。 
    focused的触发也不是你想的这么简单。 
    你用第三方控件,第三方控件内部是怎么封装的。你要试一下。 
    你再设置一下tabindex为0我是没有点usercontrol但是他会在最前面啊,
    我只知道除了第一次之外,以后怎么点都会触发这个事件啊