Programmatically show tooltip in winforms application

前端 未结 6 1500
[愿得一人]
[愿得一人] 2020-12-09 15:26

How can I programatically cause a control\'s tooltip to show in a Winforms app without needing the mouse to hover over the control? (P/Invoke is ok if necessary).

相关标签:
6条回答
  • 2020-12-09 16:03

    First You need to add tooltip control to the form Second attach the tooltip control to some control you want the tooltip to show on (MyControl) Third do this: Tooltip1.Show("My ToolTip Text", MyControl)

    0 讨论(0)
  • 2020-12-09 16:07

    If you create your variable private to the whole form, you will be able to call the sub for the and adjust the 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 讨论(0)
  • 2020-12-09 16:09

    This is the code I use:

    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 ); 
      }
    }
    

    Call CreateToolTip function to create a tool tip for a certain control.

    0 讨论(0)
  • 2020-12-09 16:12

    If you are using the Tooltip control on the form, you can do it like this:

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

    The MSDN documentation for the ToolTip control's "Show" method has all the different variations on this and how to use them.

    0 讨论(0)
  • 2020-12-09 16:12
    System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
    ToolTip1.SetToolTip(this.textBox1, "Hello");
    

    The tooltip will be set over the control "textBox1".

    Have a read here:

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

    0 讨论(0)
  • 2020-12-09 16:19

    Kevin, if you want to create your own balloon, read this link:Task 3: Showing Balloon tips. There mentioned NativeMethods class with the TOOLTIPS_CLASS constant.

    0 讨论(0)
提交回复
热议问题