在RichTextBox中删除所选文本

7

我是您的辅助翻译,以下为需要翻译的内容:

我有一个 richtextbox,当用户按下按钮时,我想要删除所选内容而不是剪切。

我已经尝试过使用

private void button1_Click(object sender, EventArgs e)
{
     SendKeys.Send("DELETE");
}

这个方法可以实现,但我想了解另外一种方式。

我已经尝试过

private void button1_Click(object sender, EventArgs e)
{
    richTextBox1.SelectedText.Replace(richTextBox1.SelectedText, "");
}

这并没有执行任何操作。

请问我可以做什么?

2个回答

19

只需这样做:

private void button1_Click(object sender, EventArgs e)
{  
   richTextBox1.SelectedText = "";
}

你的代码不能正常工作,因为字符串是不可变的(immutable),你不能用这种方式更改richTextBox1.SelectedText。所有对string执行的方法(ReplaceInsert等)都会创建一个新的string。如果需要,将使用这个新字符串来初始化你的字符串变量。


6
请注意,如果 ReadOnly 被设置为 true,这将无法正常工作。 - Vegard Innerdal
1
Selection.Text="" 是我需要的。 - Dave
这只是突出显示所选文本,而不是删除它。 - Moop
在 .NET 5 中,即使 ReadOnly 被设置为 true,这也能正常工作。 - Zintom

1
以下代码对我有效:

SendKeys.Send("{DELETE}");

点击链接访问有关SendKeys方法的官方文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接