如何在表单C#中查找单个文本单词的位置

时间:2015-09-29 23:09:57

标签: c# winforms text position richtextbox

我不确定这是否可行。我有兴趣能够找到WinForm上文字的(x,y)位置。

例如,在下图中,我希望能够在“HERE”中拉出字母H的左上角的(x,y)坐标。

我知道如何获取文本框的位置,因此我可以根据文本框中“HERE”这个词的位置进行粗略估计,但我希望能够只询问程序中的单词是什么如果可能的话。

另外,如果有办法获得该位置,我希望能够得到单词的长度和高度(基本上我想知道单词“HERE”的边界框的坐标,如果可能的)

不确定这是否重要,但文本框是richTextBox,文本框是从Form1类中的字符串数组填充的。

提前谢谢!

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用TextBox方法在RichTextBoxrichTextBox内获取“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}}