1.当把CheckBox的Caption属性的数值去掉后,在用Tab键移动焦点时,CheckBox上不会有那种获得焦点的虚框,我想他们获得焦点时,虚框显示在CheckBox那个小方块周围,怎么做呢?
2.当在画面上加了多个OptionButton后,用Tab键移动焦点时,其他的OptionButton并没有那种获得焦点的虚框,他们的TabIndex都是连续的,TabStop也是true,也在一个Frame里面,但是如果用山下左右箭头可以移动,也有获得焦点的虚框,如何在用Tab键移动的时候,也有这种虚框呢?
3.当OptionButton或得焦点的时候,他就会自己选中了这个项,也就是他的Value=True了,如何只让他获得焦点,而不让他选中呢?我希望当或得焦点的时候,可以通过用空格键去选中,而不是自己选中。
2.当在画面上加了多个OptionButton后,用Tab键移动焦点时,其他的OptionButton并没有那种获得焦点的虚框,他们的TabIndex都是连续的,TabStop也是true,也在一个Frame里面,但是如果用山下左右箭头可以移动,也有获得焦点的虚框,如何在用Tab键移动的时候,也有这种虚框呢?
3.当OptionButton或得焦点的时候,他就会自己选中了这个项,也就是他的Value=True了,如何只让他获得焦点,而不让他选中呢?我希望当或得焦点的时候,可以通过用空格键去选中,而不是自己选中。
Option ExplicitPrivate Sub Option1_GotFocus()
Option1.Value = False
End Sub
如果不考虑这个原因,告诉你个比较无耻的办法:放一个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^ 这个方法过后无耻吧
这样的话,客户有可能会认为这是一个Bug,按照顺序的话,应该是2,3,4,5,6,7,...这样下来的,而不是2,7这样的顺序,其中的4,5,6这三个就直接跳过了,这样就会有一种断链的感觉.所以我在寻求解决的方法,你说的自己写控件,我到是蛮感兴趣的,可是项目的时间不够,而且客户也不同意用自己的控件。如果这只是我自己做着玩的话,我没必要去搞这些的...^0^,所以还希望你能不吝赐教。不过你上面说的另一个方法,不错。想到用Button来做,怎么就没想到用Shape来做,郁闷~~~~
我去试验一下,看看效果
Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long
说明
画一个焦点矩形。这个矩形是在标志焦点的样式中通过异或运算完成的(焦点通常用一个点线表示)。如用同样的参数再次调用这个函数,就表示删除焦点矩形
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
lpRect RECT,要在逻辑坐标中描绘的矩形