改变VB6文本某一部分的颜色?

时间:2011-05-27 10:03:48

标签: text colors vb6

这是我的代码看起来像

Form1.GRQ.AddItem txtRequest.Text & (" - Pending")

我只想将( - 待定)部分更改为红色,使其在列表框中的黑色文本旁边显示为红色。任何想法?

2 个答案:

答案 0 :(得分:10)

遗憾的是,使用常规VB6控件无法执行此操作。您可以使用.ForeColor更改 all 文本框/列表框/标签文本的颜色,但不能更改其中的部分颜色,这对您来说真的没什么用。值得庆幸的是,有两种解决方案:

  1. 第一种方法是继续使用列表框,但添加一个标题,并在您想要的文本旁边添加红色文本“ - 待定”。它不漂亮,但你可以让它发挥作用。

  2. 更好的解决方案是更熟悉RichTextBox控件。但是,只有拥有VB6的Professional或Enterprise版本才能使用。假设你这样做,在VB6菜单上,单击Project - >组件,然后在弹出的新窗口中,在“控件”选项卡下,选中“Microsoft Rich TextBox Control 6.0”,然后单击“确定”。 RichTextBox选项应该出现在工具箱上,你可以像任何其他对象一样将它添加到表单中,它就像一个组合列表框/文本框...它非常有用。如果您需要一些文档,check out the MSDN

    不幸的是,RichTextBox在改变文本颜色方面有点臭。它可以完成,但不能用简单的命令。您必须找到所需的文本,选择它,然后设置颜色。 (如果你想改变所有文本的颜色,你也可以这样做 - 你必须先选择它。)无论如何,这样做的方法是:

    RichTextBox1.SelStart = RichTextBox1.Find(" - Pending")
    RichTextBox1.SelLength = 10
    RichTextBox1.SelColor = vbRed

  3. 我希望这一切都有帮助。祝你好运!

答案 1 :(得分:0)

我只需要在标签中显示一些文字,然后只更改一两个字母的颜色

我创建了XLabel(0)标签控件,并设置了.Visible = False.Autosize = True。 然后我基本上从一个数组中一次读取一个字符串并加载新的XLabel()控件,每个字符串对应一个字符串。

For z = 1 To Len(a)
    Load XLabel(z)
    With XLabel(z)
        .Caption = Mid(a, z, 1)
        .Left = XLabel(z - 1).Left + XLabel(z - 1).Width
        .BackColor = vbWhite
        .Visible = True
    End With
Next z

自启用“自动调整大小”后,所有标签都与单个标签控件内的标签相同。

但是这样你就可以按照你需要的方式修改单个字母。

请记住在继续之前卸载所有控件,如果有的话。