代码中的富文本框格式

时间:2017-01-13 06:12:06

标签: c# debugging

我正在使用给定here的代码,我将其更改为格式化富文本框中的文本,如下所示:

private void richTextBox1_Leave(object sender, EventArgs e)
    {
        richTextBox1.Rtf = @"{\rtf1\ansi " + richTextBox1.Text;
    }

它正常工作并在我离开时格式化代码,但有两个错误:

  1. 格式化的字词与
  2. 之后的无格式字词之间没有空格
      

    嘿看,\ b我是大胆的\ b而我不是

    出现:

      

    嘿看,我是大胆的而且我不是

    1. 当我再次点击文本框进行编辑时,所有格式都会消失。

2 个答案:

答案 0 :(得分:0)

尝试“嘿看,\ b我是大胆的\ b0而我不是”(注意额外的间距)来解决第一个问题。

如果控制字符丢失,您可能以错误的方式访问文本内容。使用RichTextBox对象的Rtf属性而不是Text属性。

答案 1 :(得分:0)

正如彼得G告诉我并且我完全错过了,第一个问题的答案是缺少空间。在第二个问题中,我做了一个字符串,在格式化代码之前,它将文本框的文本保存到字符串中(嘿看,\ b我' m bold \ b0和我&#39 ; m not),然后它格式化代码。然后我设置将文本框的文本设置为该字符串。

string text1;

private void richTextBox1_Leave(object sender, EventArgs e)
    {
        text1 = richTextBox1.Text;
        richTextBox1.Rtf = @"{\rtf1\ansi " + richTextBox1.Text;
    }

    private void richTextBox1_Enter(object sender, EventArgs e)
    {
        richTextBox1.Text = text1;
    }