1.当把CheckBox的Caption属性的数值去掉后,在用Tab键移动焦点时,CheckBox上不会有那种获得焦点的虚框,我想他们获得焦点时,虚框显示在CheckBox那个小方块周围,怎么做呢?
2.当在画面上加了多个OptionButton后,用Tab键移动焦点时,其他的OptionButton并没有那种获得焦点的虚框,他们的TabIndex都是连续的,TabStop也是true,也在一个Frame里面,但是如果用山下左右箭头可以移动,也有获得焦点的虚框,如何在用Tab键移动的时候,也有这种虚框呢?
3.当OptionButton或得焦点的时候,他就会自己选中了这个项,也就是他的Value=True了,如何只让他获得焦点,而不让他选中呢?我希望当或得焦点的时候,可以通过用空格键去选中,而不是自己选中。

解决方案 »

  1.   

    第3个
    Option ExplicitPrivate Sub Option1_GotFocus()
        Option1.Value = False
    End Sub
      

  2.   

    1.当把CheckBox的Caption属性的数值去掉后,在用Tab键移动焦点时,CheckBox上不会有那种获得焦点的虚框,我想他们获得焦点时,虚框显示在CheckBox那个小方块周围,怎么做呢?//焦点实际上是写在caption周围的,所以如果你这个特殊了,就要保证你其他的也特殊
    如果不考虑这个原因,告诉你个比较无耻的办法:放一个shape控件,设置borderstyle为2,设置Visible为false,加这个代码。
    Private Sub Check2_GotFocus()
      Me.Shape1.Visible = True
    End SubPrivate Sub Check2_LostFocus()
     Me.Shape1.Visible = False
    End Sub记主,shape一定要放得恰到好处,当然也可以使用线条哈^0^  这个方法过后无耻吧
      

  3.   

    2.当在画面上加了多个OptionButton后,用Tab键移动焦点时,其他的OptionButton并没有那种获得焦点的虚框,他们的TabIndex都是连续的,TabStop也是true,也在一个Frame里面,但是如果用山下左右箭头可以移动,也有获得焦点的虚框,如何在用Tab键移动的时候,也有这种虚框呢?//这个比较简单,懒得写代码了哈,既然上下可以动,那证明keycode=38和40的时候是可以使用的首先判断tabstop在那里,然后判断tab为9的时候然后去sendkey出40的消息就OK后话:楼主的问题明显在钻牛角尖,我可以告诉你的是这只是在纯粹Option下通过,一旦你有其他控件的话,焦点总会被其他控件拿走。所以你这样钻牛角尖是无用的。有些东西需要在乎下,有些功能就没必要考虑了,当然还有一个办法就是你自己去写控件,如果你足够的强,你想写啥都能实现哈
      

  4.   

    呵呵,可爱的莫衣。不是我要钻牛角尖而是,是整个画面的整体效果,这些OptionButton是在画面的最上面的一个Frame里面,这个Frame里面有5个Option,其中的第一个Option是在Tab顺的第二位,接下来的4个是分别分列三,四,五,六位,然后第七个是TextBox,所以当第一个OptionButton获得焦点后,再按Tab键时会直接跳到TextBox中(正如你前面说的),确实是被其他的控件截走了。
    这样的话,客户有可能会认为这是一个Bug,按照顺序的话,应该是2,3,4,5,6,7,...这样下来的,而不是2,7这样的顺序,其中的4,5,6这三个就直接跳过了,这样就会有一种断链的感觉.所以我在寻求解决的方法,你说的自己写控件,我到是蛮感兴趣的,可是项目的时间不够,而且客户也不同意用自己的控件。如果这只是我自己做着玩的话,我没必要去搞这些的...^0^,所以还希望你能不吝赐教。不过你上面说的另一个方法,不错。想到用Button来做,怎么就没想到用Shape来做,郁闷~~~~
    我去试验一下,看看效果
      

  5.   

    前面试了一下,和其他获得焦点的虚框有明显区别,看来这个行不通,不过我好像记得有个API可以设虚框,具体是哪个,我忘了,你知道吗?
      

  6.   

    DrawFocusRect VB声明 
    Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long 
    说明 
    画一个焦点矩形。这个矩形是在标志焦点的样式中通过异或运算完成的(焦点通常用一个点线表示)。如用同样的参数再次调用这个函数,就表示删除焦点矩形 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hdc Long,设备场景的句柄 
    lpRect RECT,要在逻辑坐标中描绘的矩形