【问题标题】:RichTextBox change text of colorRichTextBox 更改文本颜色
【发布时间】:2012-09-11 10:26:19
【问题描述】:

我有 RichTextBox 控件并输入了一些 BASIC TEXT。我希望以一种方式自定义它,当用户输入或粘贴一些文本时,它的字体颜色与 BASIC TEXT 不同。

我在 KeyDown 事件上更改了 SelectionBackColor 属性,但当用户尝试仅复制 BASIC TEXT 的一部分时也会发生这种情况。

 private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        RichTextBox richTextBox1 = sender as RichTextBox;
        richTextBox1.SelectionBackColor = Color.LightCoral;
    }

【问题讨论】:

    标签: c# winforms richtextbox


    【解决方案1】:

    使用TextChanged 事件代替KeyDown

    private void richTextBox1_TextChanged(object sender, EventArgs e)
    {
        RichTextBox richTextBox1 = sender as RichTextBox;
        richTextBox1.SelectionBackColor = Color.LightCoral;
    }
    

    【讨论】:

    • 但是 Textchanged 事件在我的系统中工作我已经检查过了............请再次检查
    【解决方案2】:

    试试这个:

    private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.V)
            {
                richTextBox1.SelectionBackColor = Color.LightCoral;
    
            }
            else
            {
                richTextBox1.SelectionBackColor = Color.White;
            }
        }
    

    【讨论】:

    • 我发现粘贴文本并没有调用选择事件,所以:if(e.Control && e.KeyCode == Keys.V) { richTextBox1.SelectionBackColor = Color.LightCoral; } 什么都不做......
    【解决方案3】:
    private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Control && e.KeyCode == Keys.V)
        {
            richTextBox1.SelectionBackColor = Color.LightCoral;
    
        }
        else
        {
            richTextBox1.SelectionBackColor = Color.White;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 2012-07-28
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 2017-11-20
      • 2010-11-06
      • 2016-09-01
      相关资源
      最近更新 更多