我想做这个:
Const COLOR_GREEN = &H00FF00
Me.Label1.BackColor = COLOR_GREEN
然而,有一个问题是 vb 自动决定将 &H00FF00 转换为 &HFF00,所以我得到了这个:
Const COLOR_GREEN = &HFF00
Me.Label1.BackColor = COLOR_GREEN
十进制值 COLOR_GREEN 现在是 -256 而不是 65280,所以背景是黑色而不是绿色!这很烦人,因为我可以使用 #00FF00 在表单设计模式下完美地设置颜色。
在表单设计模式下将颜色设置为#00FF00 在 vb 中的等价物是什么?
最佳答案
您是否尝试过文字 &H0000FF00&
?以下代码对我来说很好用:
Const COLOR_GREEN = &H0000FF00&
Me.Label1.BackColor = COLOR_GREEN
当然,VB 6 会自动将其折叠为这个,这仍然可以正常工作,因为这两个值在数值上完全相同:
Const COLOR_GREEN = &HFF00&
Me.Label1.BackColor = COLOR_GREEN
诀窍是该值需要声明为
Long
,而不是 Integer
. 在数字文字后放置与号 ( &
) 即可完成此操作。这也解释了为什么您看到的值为 -256 而不是您期望的 65280。值 65280 太长,无法放入
Integer
,当它溢出该数据类型时,VB 6 再次将其环绕,产生 -256。还值得注意的是,VB 6 中的十六进制文字与您可能从 Web 和 HTML 编程中熟悉的那些不同。而不是您在那里找到的 RRGGBB 符号, VB 6 使用 BBGGRR 表示法,或
&H00BBGGRR&
,与原生Win32相同COLORREF
低位字节是红色而不是蓝色的结构。当然,请注意,对于您在此处显示的标准颜色值,最好使用 VB 文字,例如
vbGreen
:Me.Label1.BackColor = vbGreen
关于vb6 - vb 十六进制颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438277/