当我点击一个带有单词的按钮时,例如 "cat",我想让这个单词在richTextBox1中变成红色。当然我做错了,但我想学习如何改变它。
private void btn1(object sender, EventArgs e)
{
Button button = sender as Button;
string wordToColor = button.Text;
ChangeColorOfText(richTextBox1, wordToColor);
}
private void ChangeColorOfText(RichTextBox richTextBox1, string word)
{
ColorDialog colorDialog1 = new ColorDialog();
colorDialog1.Red = richTextBox1.SelectionColor;
int index;
do
{
index = richTextBox1.Find(word);
if (index >= 0)
{
richTextBox1.Select(index, word.Length);
richTextBox1.SelectionColor = ColorDialog.Red;
}
}
while (index >= 0);
}
我有一些东西,可能是一个解决方案,你。
private void button1_Click(object sender, EventArgs e)
{
//Your code for finding and selecting your text
if (!String.IsNullOrEmpty(myRichTextBox.Text))
{
//Your code for selecting your text
myRichTextBox.SelectionStart = 0;
myRichTextBox.SelectionLength = myRichTextBox.Text.Length;
}
myRichTextBox.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
myRichTextBox.SelectionColor = Color.Red;
}
我想你的问题是在设置颜色之前没有设置字体。
(当我添加了这一行 myRichTextBox.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
一切正常)
myRichTextBox.SelectionColor = Color.Red;
不在
richTextBox1.SelectionColor = ColorDialog.Red;
它更容易,更有效率。
private void ChangeColorOfText(RichTextBox richTextBox1, string word)
你不需要加上 RichTextBox richTextBox1
元素。(没有它我也能正常工作)。
我删除了 ColorDialog colorDialog1 = new ColorDialog();
colorDialog1.Red = richTextBox1.SelectionColor;
并改变了 richTextBox1.SelectionColor = ColorDialog.Red; to
richTextBox1.SelectionColor = Color.Red;我以为这样就可以了,但就在我在文本框中写下按钮中的同一个字,然后点击按钮时,表单就冻结了。