2011-07-15 10 views
0

私はリッチテキストコントロールボックスのキャレット位置[コントロール内の正確な位置]を知りたいので、これの一部としてC#で新しいアプリケーションを作成しようとしています。GetCaretPos?やその他の方法を使用してテキストボックスでCaretPositionを取得するにはどうすればよいですか?

私はそれを説明します、魔法:私は勝つフォーム、リッチテキストコントロールボックスとcontextmenustripを持っています。

テキストボックスに特定のチャージャーまたは文字列を入力すると、このコンテキストメニュー項目がポップアップ表示されます。

これは私がそのテキストボックスのキャレットの正確なポイントを知りたいのです。

+ SOF記事をグーグルの結果として、私は、GetCaretPosを通して方法を見つけ

しかし、私はそれを使用することができません。

私はrichtextbox get関数で何かをしました。

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

これは正確な点であるかどうかは分かりませんが、正しい値が得られています。

どのように問題を解決できますか?

私は問題を解決しましたが、私の問題は解決しました。だから、もう少し詳細を聞いたので、再投稿してください。

ありがとうございます。

+0

@ agent-j Hai Sir、何を言っていますか?何か間違っているとすみません。 –

+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

ありがとうございました。 –

関連する問題