如何使用GetCaretPos()或任何其他方法获得文本框上的CaretPosition

本文关键字:文本 CaretPosition 方法 其他 GetCaretPos 何使用 任何 | 更新日期: 2023-09-27 18:02:04

我正在尝试在c#上创建一个新的应用程序,作为此应用程序的一部分,我想知道在富文本控制框上的插入符号位置(控件内的确切点)

我将解释它:假设我有一个win表单,富文本控制框和一个上下文栏。当我在文本框中输入一个特定的字符或字符串时,我想弹出这个上下文菜单项。

由于这个原因,我想知道插入符号在文本框上的确切位置

由于谷歌+ SO文章,我找到了通过GetCaretPos()的方法,但我无法使用它。

我用richtextbox get函数做了一些事情。一个是:

Point k= richTextBox1.GetPositionFromCharIndex((richTextBox1.Lines[richTextBox1.GetLineFromCharIndex(richTextBox1.GetFirstCharIndexOfCurrentLine())].Count() + 1));

我不知道这是不是正确的点,但有时我得到正确的值。

我该如何解决这个问题?

如何使用GetCaretPos()或任何其他方法获得文本框上的CaretPosition

下面是查看上下文菜单显示位置的快速方法。一定要订阅这个活动。

  private void richTextBox1_SelectionChanged(object sender, EventArgs e)
  {
     Point point = richTextBox1.GetPositionFromCharIndex(richTextBox1.SelectionStart);
     Text = point.ToString ();// Write to window title for fun
     new ContextMenu(new MenuItem[] {new MenuItem("test")}).Show (richTextBox1, point);
  }