当前位置:编程学习 > VB >>

为什么我做的这个改变字体颜色的不支持修改,只能修改文本框修改颜色

--------------------编程问答-------------------- 哪一行出借? --------------------编程问答--------------------
Label9.ForeColor =iif(IsNumeric(Text3.Text)=true,clng(text3.text),clng("&H" & text3.text))
--------------------编程问答--------------------
不行呀 还是会出错,上面的是出错的载图

这时侯的记事本的内容是这样的 --------------------编程问答-------------------- 转为长整形试试 --------------------编程问答-------------------- 呜.... 不懂您说的是什么 --------------------编程问答-------------------- 格式完全不一致,怎么想的?
Private Sub Form_Load()
    ...
    Text3.Text = StrConv(LoadBytes, vbUnicode)
    Label9.ForeColor = QBColor(Text3.Text) '读取的是16色,十进制
End Sub

Private Sub Command7_Click()
    ...
    Print #1, Hex(CommonDialog1.Color) '写入文件的是真彩色,十六进制
    ...
End Sub
--------------------编程问答-------------------- Label9.ForeColor = QBColor(Text3.Text)
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
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字节的颜色值,有可能不能用。
‘另外,输入的颜色值太大,将溢出,也不能用。
--------------------编程问答-------------------- 16进制要加上&H:Text3.Text="&H" & Text3.Text --------------------编程问答-------------------- Label9.ForeColor = Val(Text3) & H: Text3.Text = "&H" & Text3.Text
这样还是不行
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,