请大佬解释一个突然发现的问题(不是写程序)
vb吧
全部回复
仅看楼主
level 8
tbzp666 楼主
问题是:当文本框text1的enabled属性设置为False时,我对“字体”、“字号”进行编写代码时正常
但对字体颜色编写时,文本框不起作用(不改变颜色)
当文本框text1的enabled属性设置为True时,能改变颜色
编写代码如下:
Rem 选择字体
Private Sub Option1_Click(Index As Integer)
Text1.FontName = Option1(Index).Caption
End Sub
Rem 选择字号
Private Sub Option2_Click(Index As Integer)
Text1.FontSize = Option2(Index).Caption
End Sub
Rem 选择字体颜色
Private Sub Option3_Click(Index As Integer)
Select Case Index
Case 0
Text1.ForeColor = vbRed
Case 1
Text1.ForeColor = vbGreen
Case 2
Text1.ForeColor = vbBlue
Case 3
Text1.ForeColor = vbYellow
End Select
End Sub
请大佬们解释为什么?
2023年03月17日 02点03分 1
level 8
tbzp666 楼主
我在过程Private Sub Option3_Click(Index As Integer)中加载一条语句
Text1.Enabled = True
程序显示正常了
2023年03月17日 02点03分 2
level 13
控件enable设为false的时候,字体颜色应该是强制变成灰色的,以显示不可用的状态
2023年03月17日 03点03分 4
是的,enabled=false不可用,但为什么字体和字号可以改变,颜色不能改变,造这个道理字体和字号也不能改变
2023年03月17日 05点03分
@tbzp666 个人猜测其实颜色也改变了,只是禁用时增加类似灰度的一个效果,覆盖了原有颜色
2023年03月17日 08点03分
@tbzp666 个人认为,enable=false并不是完全禁用控件,而是该控件对于用户无法响应,但是可以响应其他代码,例如 private sub command1_click msgbox "" end sub private sub command2_click command2.value=true end sub command1设为禁用,并不影响command2唤起它
2023年03月17日 08点03分
@总裁大人👻 这应该是正解
2023年03月17日 09点03分
level 13
文本框的Enabled属性设置为False,设置的颜色其实是生效的,当Enabled再次设为True就显示正常了。至于为什么Enabled为False是灰色的,就是微软控件设计时就是用灰颜色来显示这个效果。你以后搞UserControl来制作控件就明白了,控件是完全可以由设计者来定制的
2023年03月17日 09点03分 5
当那时你哪怕将Enabled设为False,控件文本还是设置的颜色都是完全可以的,有时深入一点搞懂原理其实就是很简单的问题
2023年03月17日 10点03分
1