0

C#で新しいアプリケーションを作成しようとしています。その一環として、リッチテキストコントロールボックスのキャレット位置(コントロール内の正確なポイント)を知りたいです。

説明します。Winフォーム、リッチテキストコントロールボックス、コンテキストメニューストリップがあると仮定します。テキストボックスに特定の文字または文字列を入力すると、このコンテキストメニュー項目がポップアップ表示されます。

このため、そのテキストボックスの正確な注意点を知りたいと思います。

グーグル+SOの記事の結果、私は道を見つけましたGetCaretPos()が、それを使用することができません。

私はrichtextboxget関数で何かをしました。1つは次のとおりです。

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

これが正確なポイントかどうかはわかりませんが、正しい値を取得している場合があります。

どうすれば問題を解決できますか?

4

1 に答える 1

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);
  }
于 2011-07-15T07:02:10.457 に答える