在文本框中的字符串中获取所选文本的位置

时间:2013-03-28 21:33:22

标签: c# textbox selectedtext

好的,我正在尝试做一些具体的事情。我想在文本框中获取所选文本的位置。

详细说明 - 我可以使用位置来选择文字。如果我有一个textBox1,我可以这样做:

textBox1.SelectionStart = 1;
textBox1.SelectionLength = 4;

那将从第二个字母开始并选择4个字母。

我想要做的恰恰相反:当用户选择文本时,我想知道开始是什么以及长度是什么(或者开始是什么以及结束是什么。两者都可以。)< / p>

我想过只搜索字符串中的selectedtext(textBox1.SelectedText)。如果它是常用字或多次使用的字符串,则会出现问题。例如。

  

这是一只猫。这是一只猫。这是一只猫。

如果他们选择第二个句子,使用SelectedText搜索该特定句子的字符串对我没有好处。它可以是3中的任何一个。

所以,我的问题是:当用户点击按钮时,如何确定用户选择的确切元素,以便我以后可以操作这些特定元素?重要的是要注意后面的部分 - 我可能不仅希望在按下按钮时操纵文本。我也想稍后在文本可能不再突出显示时进行操作。这意味着我想存储SOMETHING来告诉我正在处理的句子的具体部分。如果该解决方案不可行,是否有一个解决方案你可以想到在上面的“这是猫”的例子中,用户可以选择第二个句子,点击按钮,然后我知道选择了哪个句子当他按下那个按钮?

2 个答案:

答案 0 :(得分:6)

根据documentationSelectionStartSelectionLength可以设置和读取。只需使用它们。

答案 1 :(得分:1)

您甚至不需要知道所选文本的位置来操纵它们,编辑您在文本中选择的文本,您可以简单地将SelectedText属性设置为新编辑的值。

// if textBox1.text = "Hello World World"; with first "World" selected
textBox1.SelectedText = textBox1.SelectedText.Replace("World", "Raj");
// then it becomes "Hello Raj World"