搜了一下以前的贴子,也有一个和我一样的问题,但未有结果。现在再次提问,如谁可实现,不仅分可全得,也可以200元现金感谢!这是我搜到的贴子:http://community.csdn.net/Expert/topic/4342/4342372.xml?temp=.9475519与这位兄台一样,老板我要做个控件,基本上是个按钮(但会完成我们特定的功能),老板是个完美主义者,我虽然可以实现&方式的快捷键,但他还要求要实现方向键的焦点转移控制,并且只在兄弟控件中转移,因此简单地发送Tab键是不行的。我试过GetNextDlgGroupItem、GetNextDlgTabItem等API,也试过发送WM_NEXTDLGCTL消息,但都不能完成要求。
更有甚者,要求此方案完成后,控件要在.net中工作,我晕了。各位兄台,帮小妹一下吧!
我也认为可以实现的,就像那位兄长说的,随想命令按钮就实现了,先前我发过email向他请教过,但这个作者却不告诉我是怎样实现的,我晕死了!

解决方案 »

  1.   

    期待高手来说说...顺便说说,能不能将方向键转换成Tab键呢??
      

  2.   

    把兄弟comamnd放在同一个容器里面不就可以实现方向键移动焦点了!
      

  3.   

    是不是就象按回车移向下一个控件的功能?好办。
    在控件的父窗体控件中(Controls)进行遍历,然后按Tabindex进行排序,然后找下一个可以设置焦点的控件(可以是你自己开发的控件,也可以是全部控件,你自己看着办)。然后setfocus.
    VB开发的当然可以在.net中使用。
      

  4.   

    用我的方法上下左右移动都可以,但前题是按Tabindex进上一个或下一个,如果是按在在窗体上的位置的上下左右则比较麻烦,需要按Left,Top进行位置排序,最终也可以实现。比tabindex难一点。
    请给我汇钱。
      

  5.   

    如果在容器控件内,可以用container检查你控件是否在同一容器内
      

  6.   

    1、把不想获得焦点的控件的tablestop属性关掉
    2、在mousedown里替换键值
      

  7.   

    是不是就象按回车移向下一个控件的功能?好办。
    在控件的父窗体控件中(Controls)进行遍历,然后按Tabindex进行排序,然后找下一个可以设置焦点的控件(可以是你自己开发的控件,也可以是全部控件,你自己看着办)。然后setfocus.
      

  8.   

    Re: 瓦特,感谢你的方案,这个办法我试过,在VB中可以,而且很好。但无法在.net中用,经测试, 根本无法使用controls进行遍历。
      

  9.   

    如果.net中不好用,用API进行处理了不知可以不可以。
    可能用到几个API函数。如Getparent,EnumChildWindows,GetNextWindow,IsWindowEnabled,IsWindowVisible等不知好不好用,但原理还是与存VB相同呀!
      

  10.   

    Re: xyjdn(项有建^_^) ,关键在于不知道下一个控件是哪个啊。得到兄弟控件的句柄很容易,但无法确定它的Tabindex啊。Re: 瓦特,你上面提到的API,我试过的。没用。
      

  11.   

    Re: xyjdn(项有建^_^) ,关键在于不知道下一个控件是哪个啊。得到兄弟控件的句柄很容易,但无法确定它的Tabindex啊。===============晕,不就是按窗本排列的下一下位置吗?1 2 3 4 5
    a b c d e
    s y j k l设当前焦点在d处
    向上是2向下是y向左是a向右是c如果不是在窗体排列好的,用户怎么想到要用方向键?但无法确定它的Tabindex啊,——得不到就不要用复制粘贴的方式建立的控键组
      

  12.   

    yiwen0001(safd),我虽然不会编程,所以细节方面帮不了你,但是分辩每个控件的句柄应该是有现成的方法的
      

  13.   

    http://www.vbaccelerator.com/home/VB/Code/Libraries/Common_Dialogs/Hooked_Common_Dialogs/article.asp在这个网页中的左边有代码但需要楼主去仔细看看是怎么控制TAB键的,稍有点复杂