C#调用了一个C++写的dll,实现在Form上自画了个区域窗口。
现在的问题是按Tab键能够将焦点在Form上已有的控件间进行切换,那个自绘的窗口得不到焦点,而同样的做法在VC上是可以获得焦点的,请问怎么让C#的也可以获得焦点?

解决方案 »

  1.   

    你能不能获取到那个那个自绘的窗体呢,要是能可以控件.focus();获得焦点。
    或者你试试把它的TabIndex值改一下,因为Tab建转移焦点的顺序是根据这属性来的。
      

  2.   

    将自会的图形放到一个panel中,然后让panel获取焦点
      

  3.   

    自绘的窗体是C++ DLL实现的,没有TabIndex属性呢。
    在C++下叫WS_TABSTOP属性,应该跟这个类似,但是我已经在DLL里面设了,在VC中调用此DLL是没有这个问题的
      

  4.   

    实现一个UserControl,在其上面绘图.
    同时在UserControl的构造函数中设置:
    this.SetStyle(ControlStyles.Selectable,true);那么这个UserControl就是可以被Tab选择的
      

  5.   

    我们把焦点转移到容器之后还得需要考虑容器中获得选中的区域,试下bloodish的方法。
      

  6.   

    可以用tableindex,我发现在添加控件的时候这个值好像就已经设置好了