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

标签 c# winforms text position richtextbox

我不确定这是否可能。我感兴趣的是能够在 WinForm 上找到文本单词的 (x,y) 位置。

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

我知道如何获取文本框的位置,所以我可以根据“HERE”这个词在文本框内的位置进行粗略估计,但我希望能够只询问程序这个词在哪里如果可能的话。

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

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

提前致谢!

enter image description here

最佳答案

您可以使用 GetPositionFromCharIndex 方法,获取“HERE”在 TextBoxRichTextBox 中的位置(两者都适用)。

您可能知道,要获得在窗口中的位置,您必须将其与 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());

关于c# - 如何在C#表格中查找单个文本单词的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32855198/

相关文章:

c# - 服务错误 1053 : Could not start in timely fashion

iphone - 如何在 iPhone 上旋转 Quartz 绘制的文字

c# - 错误: Message Queuing failed to verify digital signature of a message sent to queue

c# - 滚动时在 Panel 中平滑绘制或绘制子控件

c# - 为 "character"设计一种干净/灵活的方式来在角色扮演游戏中施放不同的法术

c# - 自定义控件 - 属性框中的可单击链接

JavaScript 不可选择的文本在 Chrome/Internet Explorer 中不起作用

Java:如何使用变量右对齐文本

c# - 为事件目录用户添加地址信息

c# - UWP 用户友好的方式来检查用户是否仅授予相机权限