以编程方式将backspace输入richtextbox

时间:2017-05-07 12:33:07

标签: c#

我试图使用richtextboxes来显示单行数学方程式。因此,我必须代表指数。 我通过更改字体大小和偏移来完成此操作,如下所示:

   {
        if (state) // superscript
        {
            richTextBox1.SelectionCharOffset = offSet; 
            richTextBox1.SelectionFont = new Font("Lucinda Console", 10);     

        }
        else  // normal
        {
            richTextBox1.SelectionCharOffset = 0;                                     
            richTextBox1.SelectionFont = new Font("Lucinda Console", initialFont);
        }

   richTextBox1.SelectedText = " ";         

    } 

这个代码体是用一个方法执行的,由一个复选框调用。 我遇到的问题是,如果我没有追加空格,那么我输入它时,richtextbox的字符偏移量和字体值默认回到标称值。

我真的不想要一个空间。我只是用它来保持程序的快乐。作为一种解决方法,我试图以编程方式实现退格。有没有办法做到这一点?我确实尝试在块的底部使用这行代码,但它没有效果:

richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1);

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.Checked)
        {
            richTextBox1.SelectionCharOffset = offSet;                                    // set the CharOffset to display superscript text. 
            richTextBox1.SelectionFont = new Font("Lucinda Console", 10);                 // set the superscript font;           
        }
        else
        {
            richTextBox1.SelectionCharOffset = 0;
            richTextBox1.SelectionFont = new Font("Lucinda Console", initialFont);
        }

        richTextBox1.SelectedText = " ";        
    }

1 个答案:

答案 0 :(得分:0)

只需运行一个简单的测试用例,您需要做的就是让RichTextBox FOCUS 进行更新。

变化:

richTextBox1.SelectedText = " ";   

致:

richTextBox1.Focus();