vb.net颜色表示的简单介绍

VB6 如何进行颜色转换

首先纠正一下,HFFFFFFFF不是白色,正确的应该是HFFFFFF,共三个字节,每个字节分别是红绿蓝三原色的分量值。如果用HFFFFFFFF(这是四个字节),VB6会报错的。

创新互联专注于企业营销型网站建设、网站重做改版、灌云网站定制设计、自适应品牌网站建设、H5页面制作商城系统网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为灌云等各大城市提供网站开发制作服务。

其次,vbWhite是VB的内部常量,它的值就是HFFFFFF(也就是十进制的16777215),所以不存在转换的问题。建议尽量使用类似vbWhite、vbRed、vbBlue这样的常量来表示颜色,因为它们很直观,即使不懂编程(但懂点英语)的人也知道它们就是白色、红色、蓝色的意思。

你可以自己在VB6的立即窗口验证一下我上面所述是否正确:

Print vbWhite   '显示结果为16777215

Print Hex(vbWhite)   '显示结果为FFFFFF

补充说一下,颜色的多种表示方式,其实它们最终的值都是相等的,并不需要所谓的转换,比如以下是纯蓝色的多种表示方式:

vbBlue

RGB(0, 0, 255)

HFF0000

16711680

以上这些表示方式,其实它们的值都是一样的,都是等于16711680,你甚至可以拿它们直接来进行数学运算呢!

vbBlue + RGB(0, 0, 255) + HFF0000 + 16711680 = 66846720

66846720 / 4 = 16711680

如果你是想让一个颜色值分解为红绿蓝三原色分量,可以这样:

color1 = vbWhite   '这是白色

red = color1 Mod H100  '这是红色分量

green = color1 \ H100 Mod H100  '这是绿色分量

blue = color1 \ H10000  '这是蓝色分量

c#/vb.net如何通过反射获得颜色名称(字符串)对应的颜色(Color类型)?

public Color col(string colorName)

{

Type colorType = typeof(Color);

PropertyInfo info = colorType.GetProperty(colorName, BindingFlags.Public | BindingFlags.Static);

if (infos == null)

{

//throw Exception

}

return(Color)info.GetValue(null, null);

}

是这个意思么?输入“Red”, 返回Color.Red 区分大小写

VBNET怎么获取控件颜色的RGB值,又怎么用RGB将颜色赋给控件颜色。

R/G/B值最小是0最大是255属Byte值类型

Dim cr As Color = 控件.BackColor '获取控件背景色

Dim alpha As Byte = cr.A '透明度

Dim R As Byte = cr.R 'R值

Dim G As Byte = cr.G 'G值

Dim B As Byte = cr.B 'B值

Dim outAcr As Color = Color.FromArgb(alpha, R, G, B) '创建带有透明通道的ARGB颜色

Dim outcr As Color = Color.FromArgb(R, G, B) '创建不透明的RGB颜色

VB.NET如何显示多种颜色的一段文本?

Label控件是没有办法实现多种颜色的文字的,只能用RichTextBox来实现,而且你的自定义格式字符串也没有结尾的,这样很不好,至少也要red红色字/redyellow黄色字/yellow,而且实现也很麻烦的,下面的代码我没有检测正确性,有错误的自己改一改吧

Dim colortag() as string

dim colors() as color

const txt as string="red红色字/redyellow黄色字/yellow"

private sub Form_Load(object sender,eventargs e)handles mybase.load

colortag(0)="red":Colortag(1)="yellow"

colors(0)=color.red:colors(1)=color.yellow

richtextbox1.text=txt

for i as integer=0 to colortag.lenght-1

dim tag as string="" colortag(i) ""

dim endtag as string="/" colortag(i) ""

dim find as integer=1

do

find=instr(find,txt,tag)+tag.lenght

if(find0)then

dim find1 as integer=instr(find,txt,endtag)

richtextbox1.SelectionStart=find

richtextbox1.selectionlenght=find1-find

richtextbox1.selectioncolor=colors(i)

find=find1

else

exit do

end if

loop

next

end sub


当前标题:vb.net颜色表示的简单介绍
本文链接:http://scyanting.com/article/doiegoc.html