MouseHoverイベントを使用して空のデスクトップ上の固定小数点のアプリケーションフォームの外にツールヒントのポップアップが表示されても、ツールヒントとして役立つかどうかはわかりません。可能であれば他の方法でWinformのツールヒントの位置設定
私はこの目標のためのオプションとして別のフォームを表示する方法を求めていません。
MouseHoverイベントを使用して空のデスクトップ上の固定小数点のアプリケーションフォームの外にツールヒントのポップアップが表示されても、ツールヒントとして役立つかどうかはわかりません。可能であれば他の方法でWinformのツールヒントの位置設定
私はこの目標のためのオプションとして別のフォームを表示する方法を求めていません。
あなたはこれらのオプションのいずれかを使用することができます。自分自身を示すとToolTip
を隠し
ハンドル。 MouseHover
をToolTip
と表示し、希望する場所にMouseLeave
を使用して非表示にすることができます。
MoveWindow
Windows APIメソッドを使用すると、ツールヒントがデフォルトの場所ではなく特定の場所に表示されます。
オプション1
あなたはあなたのコントロール(S)のMouseHover
とMouseLeave
イベントを処理して、デスクトップウィンドウの特定の場所にこのようToolTip
を表示することができます
private void control_MouseHover(object sender, EventArgs e)
{
var control = (Control)sender;
var text = toolTip1.GetToolTip(control);
if (!string.IsNullOrEmpty(text))
toolTip1.Show(text, control, control.PointToClient(new Point(100, 100)));
}
private void control_MouseLeave(object sender, EventArgs e)
{
var control = (Control)sender;
toolTip1.Hide(control);
}
オプション2
私は以前align right edges of a control and ToolTipのために提供オプション、あなたがtrue
へToolTip
のOwnerDraw
プロパティを設定し、コントロールのDraw
イベントを処理し、目的の場所へToolTip
を移動するためにMoveWindow
、WindowsのAPIメソッドを使用することができます。
[System.Runtime.InteropServices.DllImport("User32.dll")]
static extern bool MoveWindow(IntPtr h, int x, int y, int width, int height, bool redraw);
private void toolTip1_Draw(object sender, DrawToolTipEventArgs e) {
e.DrawBackground();
e.DrawBorder();
e.DrawText();
var t = (ToolTip)sender;
var h = t.GetType().GetProperty("Handle",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
var handle = (IntPtr)h.GetValue(t);
var location = new Point(100,100);
MoveWindow(handle, location.X, location.Y, e.Bounds.Width, e.Bounds.Height, false);
}
感謝していないとして、ツールヒントの設定を持っています。非常に便利です – nikorio
あなたは大歓迎です:) –
最終的には、GUIの特定の項目にマウスを置いたときに何らかの情報を表示するボックスが必要です。また、固定小数点で情報を表示するとします。
ツールチップでこれを達成するとは対照的に、私は次の操作を行います:
sender
(あなたがホバリングしていることを制御する)に基づいて、固定の場所に表示する情報を選択します。他のいくつかのプログラムでこれをやっている人が見てきました。たとえば、RealTermとしましょう。必要に応じて試してみて、このソリューションを試す前にどのように感じるかを見てください。
一方、ツールチップでこれを行う必要がある場合。オーバーロードをToolTip.Showとして使用して位置を選択できます。
グローバルを作成しますかイベントハンドラをクリックしますか?マウスのクリックは、あなたがプログラムをビルド/使用しない限り、あなたのプログラムの外では機能しません。 – EpicKip
ツールヒントをどのように表示しようとしているのかは不明です。どのように表示しているかを示すコードを追加することをお勧めします。次に、他のユーザーが位置付けの問題を解決しようとすることができます。 –
@EpicKipこんにちは、私は上記の間違いを編集しました。私は、テキストボックスやフォーム上でMouseHoverイベントをポップアップツールヒントにしたいのですが、マウスの矢印とは独立して空のデスクトップ上で固定サイズの800x300などのアプリケーションフォームの横にロケーション。 – nikorio