private void LoadKeys(Dictionary<string,List<string>> dictionary, string FileName)
{
string line = System.String.Empty;
using (StreamReader sr = new StreamReader(keywords))
{
while ((line = sr.ReadLine()) != null)
{
string[] tokens = line.Split(',');
dictionary.Add(tokens[0], tokens.Skip(1).ToList());
richTextBox2.AppendText("Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1]+Environment.NewLine);
ColorText(richTextBox2, Color.Red);
}
}
}
功能ColorText:
public void ColorText(RichTextBox box, Color color)
{
box.SelectionStart = box.TextLength; box.SelectionLength = 0;
box.SelectionColor = color;
box.SelectionColor = box.ForeColor;
}
但它没有用红色染色。没有改变。 我希望能够以红色着色,例如只有标记[0]和绿色标记[1]。
我该怎么做?
答案 0 :(得分:3)
public void ColorText(RichTextBox box, Color color)
{
box.Select(start, 5);
box.SelectionColor = color;
}
答案 1 :(得分:3)
您在ColorText中显示的代码显示您将转到文本的末尾,将选择长度设置为0,将颜色设置为红色然后再返回到forecolor,这样就无法实现..
也许你需要做一些像
这样的事情 box.Text = "This is a red color";
box.SelectionStart = 10;
box.SelectionLength = 3;
box.SelectionColor = Color.Red;
box.SelectionLength = 0;
答案 2 :(得分:0)
box.SelectionStart = box.TextLength;
- 您的代码行可以解释为“开始突出显示从文本框末尾开始的文本”。即选择无文本,因为在最后一个文本之后不能有任何文本。
box.SelectionLength = 0;
- 此外,此行可以解释为“突出显示0文本量”。你已经加倍确保你没有选择任何文字哈哈。
我不确定您要如何确定要选择的文字,但我会使用以下内容:
public void ColorSelectedText(RichTextBox textBox, Int32 startPos, Int32 length, Color color)
{
textBox.Select(startPos, length);
textBox.SelectionColor = color;
}
传入文本框对象和颜色。
您传递的整数可以被认为是用鼠标光标突出显示文本:
startPos是您点击鼠标的地方,'length'是startPos和释放鼠标的位置之间的字符数。