2011-03-22 81 views
0

我创建了一个Windows Form应用程序,它读入一个固定宽度的文本文件,从用户输入中获取列的宽度,然后使用它在屏幕上显示不同的列用不同的文字颜色。它可以很好地工作。C#RichTextBox控件中文本的背色

但是,如果该字段为空,它不起作用 - 在我使用的文本文件中,它们有时是这样;但我仍然希望他们被定义。因此,我认为这样做将是把一个背景色就可以了,这样的最佳方式:

http://tinypic.com/r/2ic38sm/7

但我无法找到如何与一个RichTextBox做到这一点 - 这可能吗?如果没有,有没有办法以Windows的形式做到这一点?

提前致谢!

回答

0

richTextBox上没有Selection.BackColor属性吗?

具有详细信息视图的GridView或ListView不会更好地控制您的问题吗?

+0

哦,我认为那是控制的背面颜色...不是吗? – 2011-03-22 15:26:31

+0

不是。因为它有“选择”:“SelectionBackColor”。我仍然认为你应该为你的特定应用程序使用不同的控制。 – 2011-03-22 15:27:30

+0

也许,但我希望它可以像在文件中那样显示,只需要背面颜色。我认为RTB会是最好的...... – 2011-03-22 15:41:19

1

您可以使用:

RichTextBox1.SelectAll(); 
RichTextBox1.SelectionBackColor = Color.Yellow; 

如果您正在寻找在改变文本的颜色,那么你可以使用:

RichTextBox1.SelectionColor = Color.Red; 

这里是一个有用的链接:RichTextBox Tips

取自上面的链接:

richTextBox1.Font = new Font("Consolas", 18f, FontStyle.Bold); 
richTextBox1.BackColor = Color.AliceBlue; 
string[] words = 
{ 
    "Dot", 
    "Net", 
    "Perls", 
    "is", 
    "a", 
    "nice", 
    "website." 
}; 
Color[] colors = 
{ 
    Color.Aqua, 
    Color.CadetBlue, 
    Color.Cornsilk, 
    Color.Gold, 
    Color.HotPink, 
    Color.Lavender, 
    Color.Moccasin 
}; 

for (int i = 0; i < words.Length; i++) 
{ 
    string word = words[i]; 
    Color color = colors[i]; 
    { 
     richTextBox1.SelectionBackColor = color; 
     richTextBox1.AppendText(word); 
     richTextBox1.SelectionBackColor = Color.AliceBlue; 
     richTextBox1.AppendText(" "); 
    } 
}