2

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

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

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

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

我想做的恰恰相反:当用户选择文本时,我想找出开始是什么,长度是多少(或者开始是什么,结束是什么。两者都可以)。

我考虑只搜索选定文本(textBox1.SelectedText)的字符串。如果它是一个常用词或多次使用的字符串,就会出现问题。例如。

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

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

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

4

2 回答 2

7

根据文档,可以设置和读取SelectionStartSelectionLength就用那些。

于 2013-03-28T21:36:58.010 回答
2

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

// if textBox1.text = "Hello World World"; with first "World" selected
textBox1.SelectedText = textBox1.SelectedText.Replace("World", "Raj");
// then it becomes "Hello Raj World" 
于 2013-03-28T21:41:23.967 回答