マウスをコントロールに合わせる必要なしに、プログラムでコントロールのツールチップをWinformsアプリに表示するにはどうすればよいですか? (必要に応じて、P/Invokeは問題ありません)。
フォームでTooltip
コントロールを使用している場合は、次のように実行できます。
ToolTip1.Show("Text to display", Control)
ToolTipコントロールの「Show」メソッドのMSDNドキュメント には、これとその使用方法に関するさまざまなバリエーションがすべてあります。
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello");
ツールチップは、コントロール「textBox1」に設定されます。
ここを読んでください:
ケビン、独自のバルーンを作成する場合は、次のリンクをお読みください: タスク3:バルーンのヒントを表示する 。 TOOLTIPS_CLASS定数を持つNativeMethodsクラスについて言及しました。
最初にツールチップコントロールをフォームに追加する必要があります2番目にツールチップを表示するコントロールにツールチップコントロールをアタッチします(MyControl)3番目にこれを行います:Tooltip1.Show( "My ToolTip Text"、MyControl)
フォーム全体に対してプライベート変数を作成すると、のsubを呼び出して、initialdelayを調整できます。
Public Class MyForm
Private MyTooltip As New ToolTip
...
Sub ApplyToolTips
'For default
ApplyToolTips (1000)
End Sub
Sub ApplyTooltips (ByVal Delay as Integer)
MyTooltip .InitialDelay = Delay
MyTooltip.AutoPopDelay = 5000
...
MyTooltip.SetToolTip(Me.btnClose, "Close the form")
End Sub
Private Sub Btn_Click(sender As System.Object, e As System.EventArgs) Handles Btn.Click
Dim PicBox As PictureBox = CType(sender, PictureBox)
ApplyTooltips (0)
ApplyTooltips (1000)
End Sub
これは私が使用するコードです:
static HWND hwndToolTip = NULL;
void CreateToolTip( HWND hWndControl, TCHAR *tipText )
{
BOOL success;
if( hwndToolTip == NULL )
{
hwndToolTip = CreateWindow( TOOLTIPS_CLASS,
NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL,
hInstResource,
NULL );
}
if( hwndToolTip )
{
TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_SUBCLASS;
ti.hwnd = hWndControl;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = tipText;
GetClientRect( hWndControl, &ti.rect );
success = SendMessage( hwndToolTip, TTM_ADDTOOL, 0, (LPARAM) &ti );
}
}
CreateToolTip関数を呼び出して、特定のコントロールのツールチップを作成します。