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

本文关键字:文本 位置 字符串 取文本 获取 | 更新日期: 2023-09-27 18:06:36

好的,我想在这里做一些具体的事情。我想在文本框中获得选定文本的位置。

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

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

从第二个字母开始,选择4个字母。

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

我想只是搜索字符串的selectedtext (textBox1.SelectedText)。如果它是一个常用单词或一个多次使用的字符串,问题就来了。例如,

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

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

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

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

根据文档,SelectionStartSelectionLength可以设置和读取。

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

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