web-dev-qa-db-ja.com

WinFormsアプリケーションでツールチップをプログラムで表示する

マウスをコントロールに合わせる必要なしに、プログラムでコントロールのツールチップをWinformsアプリに表示するにはどうすればよいですか? (必要に応じて、P/Invokeは問題ありません)。

24
Jason Diller

フォームでTooltipコントロールを使用している場合は、次のように実行できます。

ToolTip1.Show("Text to display", Control)

ToolTipコントロールの「Show」メソッドのMSDNドキュメント には、これとその使用方法に関するさまざまなバリエーションがすべてあります。

25
Keithius
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello");

ツールチップは、コントロール「textBox1」に設定されます。

ここを読んでください:

http://msdn.Microsoft.com/en-us/library/aa288412.aspx

9
Mark Ingram

ケビン、独自のバルーンを作成する場合は、次のリンクをお読みください: タスク3:バルーンのヒントを表示する 。 TOOLTIPS_CLASS定数を持つNativeMethodsクラスについて言及しました。

1
tretyak

最初にツールチップコントロールをフォームに追加する必要があります2番目にツールチップを表示するコントロールにツールチップコントロールをアタッチします(MyControl)3番目にこれを行います:Tooltip1.Show( "My ToolTip Text"、MyControl)

1
John

フォーム全体に対してプライベート変数を作成すると、の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       
0
Bruno Poulin

これは私が使用するコードです:

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関数を呼び出して、特定のコントロールのツールチップを作成します。

0
Mark D