单击按钮时如何更改Windows窗体中文本的颜色?

时间:2020-05-26 18:50:45

标签: c# winforms

当我单击带有单词(例如“ 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);
    }

2 个答案:

答案 0 :(得分:0)

我有几件事可能为您解决:

  1. 对我来说这是个问题,但这不是必须的:
        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);行时,一切正常)

  1. 我在代码中所做的第二件事是使用

myRichTextBox.SelectionColor = Color.Red;

安装

richTextBox1.SelectionColor = ColorDialog.Red;

更轻松,更高效。

  1. 在线

private void ChangeColorOfText(RichTextBox richTextBox1, string word)

您不必添加RichTextBox richTextBox1元素。 (没有它对我来说很好)。

答案 1 :(得分:0)

我删除了ColorDialog colorDialog1 = new ColorDialog(); colorDialog1.Red = richTextBox1.SelectionColor; 并更改了richTextBox1.SelectionColor = ColorDialog.Red; to richTextBox1.SelectionColor = Color.Red; 我以为它可以用,但是只是当我在按钮中的文本框中输入相同的单词,然后单击按钮时表格冻结。