話題(スレッド): キャレットの座標取得について

キャレットの座標取得について (2015-08-12 16:24, IZUMO, #76725)

はじめまして、

表題の件についてご教示頂けますでしょうか?

現在選択されているキャレットの位置情報からキャレットの座標(コントロール上、もしくはフォーム上)を取得する方法はございますでしょうか?

エディタの画面上でキャレットの位置でガイドもしくはヘルプ情報として動的に生成したコンテキストメニューを表示させようとしています。

ご存知の方おられましたらお助け願えますでしょうか?

よろしくお願いします。

メッセージ #76725 への返信×

ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: キャレットの座標取得について (2015-09-02 00:27, 鯨油, #76824)

AzukiControl の GetPositionFromIndex メソッドでどうでしょうか
キャレットの行列、または桁から、コントロールの相対座標を取得します

以下、VB のテストコードの抜粋です

Dim _LineIndex As Integer
Dim _ColumnIndex As Integer

'キャレットの行と列を取得する
AzukiControl1.Document.GetCaretIndex(_LineIndex, _ColumnIndex)

Dim _Point As Point

'キャレットの行と列からコントロールの相対座標を取得する
_Point = AzukiControl1.GetPositionFromIndex(_LineIndex, _ColumnIndex)

Dim _Screen As Point

'コントロールの相対座標から画面上の座標を取得する
_Screen = AzukiControl1.PointToScreen(_Point)

'コンテキストメニューを表示する
ContextMenuStrip1.Show(_Screen)
#76725 への返信

メッセージ #76824 への返信×

ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする