¿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).
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.
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í:
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.
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)
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
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.