为什么我做的这个改变字体颜色的不支持修改,只能修改文本框修改颜色
--------------------编程问答-------------------- 哪一行出借? --------------------编程问答--------------------Label9.ForeColor =iif(IsNumeric(Text3.Text)=true,clng(text3.text),clng("&H" & text3.text))--------------------编程问答--------------------
不行呀 还是会出错,上面的是出错的载图
这时侯的记事本的内容是这样的 --------------------编程问答-------------------- 转为长整形试试 --------------------编程问答-------------------- 呜.... 不懂您说的是什么 --------------------编程问答-------------------- 格式完全不一致,怎么想的?
Private Sub Form_Load()--------------------编程问答-------------------- Label9.ForeColor = QBColor(Text3.Text)
...
Text3.Text = StrConv(LoadBytes, vbUnicode)
Label9.ForeColor = QBColor(Text3.Text) '读取的是16色,十进制
End Sub
Private Sub Command7_Click()
...
Print #1, Hex(CommonDialog1.Color) '写入文件的是真彩色,十六进制
...
End Sub
Text3.Text只能是0-15的数值,其它的都会出错
QBColor是一个完全没有必要的转换,除非你先使用早期的VB颜色表达,可以使用
Label9.ForeColor = val(text3)
如果你希望可以输入英文或汉字的颜色,自己需要定义一个转换函数
function getcolor(v)as long
if isnumeric(v) then
getcolor=v
else
select case ucase(v)
case "RED"
getcolor=255
case "GREEN"
getcolor=rgb(0,255,0)
case ....
end select
end if
end function
--------------------编程问答-------------------- Label9.ForeColor = val(text3)
使用这个之后颜色和设置的不一样,可以英文和数字组合 但是 改变之后颜色和选择的不同。有没有更好的这样的代码 --------------------编程问答--------------------
Dim R As Long, G As Long, B As Long--------------------编程问答-------------------- 16进制要加上&H:Text3.Text="&H" & Text3.Text --------------------编程问答-------------------- Label9.ForeColor = Val(Text3) & H: Text3.Text = "&H" & Text3.Text
On Error Resume Next
R = Val(Text3.Text) Mod 256
B = Int(Val(Text3.Text) / 65536)
G = (Val(Text3.Text) - (B * 65536) - R) / 256
Label9.ForeColor = RGB(R, G, B) '这样比较保险,如果直接等于4字节的颜色值,有可能不能用。
‘另外,输入的颜色值太大,将溢出,也不能用。
这样还是不行
补充:VB , 基础类