【问题标题】:How do I change the text in a RichTextBox size and removing the highlight on the text?如何更改 RichTextBox 大小的文本并删除文本上的突出显示?
【发布时间】:2015-06-01 06:20:53
【问题描述】:

这是我的代码。当我打开一个文本文件时,它会更改文本的字体大小,然后对所有文本进行着色,使其突出显示,就像我选择了所有文本一样。

private void openToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            OpenFileDialog theDialog = new OpenFileDialog();
            theDialog.Title = "Open Text File";
            theDialog.Filter = "TXT files|*.txt";
            theDialog.InitialDirectory = @"C:\";
            if (theDialog.ShowDialog() == DialogResult.OK)
            {
                string filename = theDialog.FileName;
                richTextBox1.Text = File.ReadAllText(filename);
                this.richTextBox1.SelectionStart = 0;
                this.richTextBox1.SelectionLength = this.richTextBox1.Text.Length;
                this.richTextBox1.SelectionFont = new System.Drawing.Font("Maiandra GD", 30);
                string s = richTextBox1.Text;
                richTextBox1.Clear();
                richTextBox1.Text = s;
            }
        }

我尝试添加这个:

string s = richTextBox1.Text;
richTextBox1.Clear();
richTextBox1.Text = s;

它成功了,但问题是文本现在恢复到原来的小尺寸。 我也试过在它之前添加这个:

this.richTextBox.SelectionStart = 0;
this.richTextBox.SelectionLength = richTextBox.Text.Length;     
this.richTextBox.SelectionBackColor = Color.White;

但这并没有做到。

【问题讨论】:

    标签: c# .net winforms richtextbox


    【解决方案1】:

    您正在直接更改 Text 属性。:richTextBox1.Text = s; 永远不要这样做,如果您不想弄乱任何格式,请不要这样做或 richTextBox1.Text = File.ReadAllText(filename);。规则见here

    改变这个

            if (theDialog.ShowDialog() == DialogResult.OK)
            {
                string filename = theDialog.FileName;
                richTextBox1.Text = File.ReadAllText(filename);
                this.richTextBox1.SelectionStart = 0;
                this.richTextBox1.SelectionLength = this.richTextBox1.Text.Length;
                this.richTextBox1.SelectionFont = new System.Drawing.Font("Maiandra GD", 30);
                string s = richTextBox1.Text;
                richTextBox1.Clear();
                richTextBox1.Text = s;
            }
    

    到这里:

            if (theDialog.ShowDialog() == DialogResult.OK)
            {
                string filename = theDialog.FileName;
                string s = File.ReadAllText(filename);
    
                this.richTextBox1.SelectionStart = 0;  // or wherever you want to insert..
                this.richTextBox1.SelectionLength = 0;
                this.richTextBox1.SelectionFont = new System.Drawing.Font("Maiandra GD", 30);
                this.richTextBox1.SelectdText = s;
            }
    

    我不知道您提到的“突出显示”,但是当您在选择之外插入文本时,它可能会将文本恢复为您之前设置的默认字体和属性..

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 2011-08-06
      • 2018-02-16
      • 2020-12-24
      • 2017-03-07
      • 1970-01-01
      • 2010-09-29
      • 2021-01-02
      • 2016-01-17
      相关资源
      最近更新 更多