在RTB中的句子之间添加文本

时间:2013-11-25 13:14:50

标签: c# text richtextbox

我的代码:

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Control && e.KeyCode == Keys.Q)
        {
            richTextBox1.Text = richTextBox1.Text + "this is a text";
        }
    }

我的问题是每当我按下CTRL + Q时,文本将被添加到句子的末尾,但不会添加到IBeam的位置。我希望将它添加到IBeam所在的位置。我不知道如何在IBeam的位置添加文本。我希望你们明白。

提前致谢!

1 个答案:

答案 0 :(得分:2)

那是因为你实际上是追加文字。这种行为是可以预期的。但是,如果您插入文本,您将得到您想要的内容:

richTextBox1.Text = richTextBox1.Text.Insert(
    richTextBox1.SelectionStart,
    "this is a text");

请注意SelectionStart的文档,其中指出:

  

如果控件中未选择任何文本,则此属性指示新文本的插入点或插入符号。