2011-07-15 34 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

謝謝先生,它的工作。 –

相關問題