如何在C#表格中查找单个文本单词的位置
How to find the position of a single word of text in a form C#
我不确定这是否可行。我感兴趣的是能够在 WinForm
.
上找到文本单词的 (x,y) 位置
例如下图中,我希望能够拉取"HERE"中字母H左上角的(x,y)坐标。
我知道如何获取文本框的位置,所以我可以根据 "HERE" 这个词在文本框内的位置进行粗略估计,但我希望能够直接询问程序如果可能的话,这个词在哪里。
此外,如果有办法得到那个位置,我希望能够得到单词的长度和高度(基本上我想知道单词边界框的坐标"HERE" 如果可能)
不确定这是否重要,但文本框是 richTextBox
,并且文本框是从 Form1
class.
中的字符串数组填充的
提前致谢!
您可以使用 GetPositionFromCharIndex
方法来获取 "HERE" 在 TextBox
或 RichTextBox
中的位置(两者都适用)。
您可能知道,要在 window 中获得位置,您必须将其与 richTextBox
的位置相加。像这样:
int index = richTextBox1.Text.IndexOf("HERE");
Point textBoxLocation = richTextBox1.GetPositionFromCharIndex(index);
Point windowsLocation = new Point(richTextBox1.Location.X + textBoxLocation.X, richTextBox1.Location.Y + textBoxLocation.Y);
Console.WriteLine("Position in textbox: " + textBoxLocation.ToString());
Console.WriteLine("Position in window: " + windowsLocation.ToString());
我不确定这是否可行。我感兴趣的是能够在 WinForm
.
例如下图中,我希望能够拉取"HERE"中字母H左上角的(x,y)坐标。
我知道如何获取文本框的位置,所以我可以根据 "HERE" 这个词在文本框内的位置进行粗略估计,但我希望能够直接询问程序如果可能的话,这个词在哪里。
此外,如果有办法得到那个位置,我希望能够得到单词的长度和高度(基本上我想知道单词边界框的坐标"HERE" 如果可能)
不确定这是否重要,但文本框是 richTextBox
,并且文本框是从 Form1
class.
提前致谢!
您可以使用 GetPositionFromCharIndex
方法来获取 "HERE" 在 TextBox
或 RichTextBox
中的位置(两者都适用)。
您可能知道,要在 window 中获得位置,您必须将其与 richTextBox
的位置相加。像这样:
int index = richTextBox1.Text.IndexOf("HERE");
Point textBoxLocation = richTextBox1.GetPositionFromCharIndex(index);
Point windowsLocation = new Point(richTextBox1.Location.X + textBoxLocation.X, richTextBox1.Location.Y + textBoxLocation.Y);
Console.WriteLine("Position in textbox: " + textBoxLocation.ToString());
Console.WriteLine("Position in window: " + windowsLocation.ToString());