所以我试图改变Access中矩形的背景颜色。我知道您可以轻松地执行此操作Box1.BackColor = RGB(0, 0, 0)
,但我想在文本框中输入一个值,然后在更新文本框后立即显示该颜色值。
我认为以下内容可行,但事实并非如此。
Textbox1 = 0,0,0
Dim P1 as String
P1 = "RGB(" + Textbox1.text + ")"
Box1.Backcolor = P1
我怎样才能动态改变背景颜色?
答案 0 :(得分:2)
你可以split
文本,通过int
运行条目并将其提供给RGB
:
Dim A As Variant
A = Split(Textbox1.text,",")
Box1.BackColor = RGB(Int(A(0)),Int(A(1)), Int(A(2)))
答案 1 :(得分:2)
根据您的代码,Eval()应该适合您。该函数评估字符串,就好像是代码一样。 Backcolor很长,顺便说一句,所以我相应地调整了你的代码。
Dim P1 as Long
P1 = eval("RGB(" + Textbox1.text + ")")
Box1.Backcolor = P1
或者你可以抛弃P1并做到这一点:
Box1.Backcolor = eval("RGB(" + Textbox1.text + ")")
根据您的操作,您可能只想使用内置颜色对话框,而不是在文本框中输入文本。
这是API声明和可重复使用的功能
Declare Sub wlib_AccColorDialog Lib "msaccess.exe" Alias "#53" (ByVal Hwnd As Long, lngRGB As Long)
Function ChooseColor(nDefColor As Variant) As Long
Dim lngColor As Long
wlib_AccColorDialog Screen.ActiveForm.Hwnd, nDefColor
ChooseColor = nDefColor
End Function
这就是你对这些功能的打电话;它传递了框的默认颜色,以便在对话框打开时选择。
Box1.BackColor = ChooseColor(Me.Box1.BackColor)