我不确定这是否可行。我有兴趣能够找到WinForm
上文字的(x,y)位置。
例如,在下图中,我希望能够在“HERE”中拉出字母H的左上角的(x,y)坐标。
我知道如何获取文本框的位置,因此我可以根据文本框中“HERE”这个词的位置进行粗略估计,但我希望能够只询问程序中的单词是什么如果可能的话。
另外,如果有办法获得该位置,我希望能够得到单词的长度和高度(基本上我想知道单词“HERE”的边界框的坐标,如果可能的)
不确定这是否重要,但文本框是richTextBox
,文本框是从Form1
类中的字符串数组填充的。
提前谢谢!
答案 0 :(得分:2)
您可以使用TextBox
方法在RichTextBox
或richTextBox
内获取“HERE”的位置(对两者都有效)。
正如您可能知道的那样,要获得窗口中的位置,您必须将其与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());
的位置相加。像这样:
{{1}}