web-development-kb-es.site

Mostrar información sobre herramientas mediante programación en la aplicación winforms

¿Cómo puedo hacer que la información sobre herramientas de un control se muestre programáticamente en una aplicación Winforms sin necesidad de que el mouse se mueva sobre el control? (P/Invoke está bien si es necesario).

24
Jason Diller

Si está utilizando el control Tooltip en el formulario, puede hacerlo así:

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

El documentación de MSDN para el método "Mostrar" del control ToolTip tiene todas las variaciones diferentes sobre esto y cómo usarlos.

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

La información sobre herramientas se establecerá sobre el control "textBox1".

Lee aquí:

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

9
Mark Ingram

Kevin, si quieres crear tu propio globo, lee este enlace: Tarea 3: Mostrar consejos de globo . Allí se mencionó la clase NativeMethods con la constante TOOLTIPS_CLASS.

1
tretyak

Primero, necesita agregar el control de información sobre herramientas al formulario. Segundo, adjunte el control de información sobre herramientas a algún control en el que desee que se muestre la información sobre herramientas (MyControl). En tercer lugar, haga lo siguiente: Tooltip1.Show ("My ToolTip Text", MyControl)

1
John

Si crea su variable privada en todo el formulario, podrá llamar al sub para el y ajustar el retraso inicial.

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

Este es el código que uso:

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

Llame a la función CreateToolTip para crear información sobre herramientas para un cierto control.

0
Mark D