2011-07-15 33 views
0

我想在c#上做一个新的应用程序,作为这个的一部分,我想知道在丰富的文本控制框上的插入位置[控件内的确切点]。如何使用GetCaretPos?或任何其他方法获取文本框上的CaretPosition?

我会解释它,假设:我有一个胜利的形式,丰富的文本控制框和contextmenustrip。

当我键入文本框上的特定charector或字符串我想弹出此contextmenu项目。

为此,我想知道该文本框上插入的确切点。

为谷歌搜索+ SOF文章的结果,我发现通过GetCaretPos的方式,

,但我无法使用它。

我用richtextbox获取了一些功能,其中一个是关注。

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

我不知道这是确切的一点或不,但有些时候我得到正确的价值。

我该如何解决这个问题?

我嘲笑了一些SOF的帖子,但我不能得到我的问题解决,因此,为什么AKED再次与一些更详细的信息,请不要把它作为转发。

谢谢。

+0

@ agent-j海先生,你在说什么?如果有什么问题,我很抱歉。 –

+0

@ agent-j,先生,请你解释一下吗? –

+0

你说过“我不知道这是不是确切的一点,但有时候我会得到正确的价值。”如果它有时是对的,什么时候是对的,什么时候是错的? –

回答

1

以下是快速查看上下文菜单显示位置的方法。 (请确保你订阅了活动;;)

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); 
    } 
+0

谢谢先生,它的工作。 –

相关问题