¿Cómo puedo programar programáticamente que se muestre la información sobre herramientas de un control en una aplicación de Winforms sin necesidad de que el mouse pase el control por encima? (P/Invoke está bien si es necesario).Muestra programáticamente información sobre herramientas en la aplicación winforms
Respuesta
Si está utilizando el control Tooltip
en el formulario, puede hacerlo de esta manera:
ToolTip1.Show("Text to display", Control)
El MSDN documentation for the ToolTip control's "Show" method tiene todas las diferentes variaciones sobre esto y cómo usarlas.
Este es el código que utilizo:
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);
}
}
función CreateToolTip llamada para crear una punta de herramienta para un cierto control.
Cómo obtener referencia a TOOLTIPS_CLASS, obtengo un error de compilación para HWND, TCHAR y muchos más. Estos no parecen estar definidos en .Net. ¿Debo agregar una referencia? –
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".
tener una lectura aquí:
primero que hay que añadir el control de información sobre herramientas a la forma Segunda adjuntar el control de información sobre herramientas a algún tipo de control que desea la descripción para mostrar en (MyControl) Tercera hacer esto: Tooltip1.Show ("Mi información sobre herramientas de texto", MyControl)
Kevin, si quieres crear tu propio globo, lee este enlace: Task 3: Showing Balloon tips. Allí mencionó la clase NativeMethods con la constante TOOLTIPS_CLASS.
Si crea su variable privada para 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
- 1. ¿Cómo se muestra la información sobre herramientas para cada celda?
- 2. Información sobre herramientas en paneles
- 3. Tutorial/información sobre herramientas/demostración para la aplicación de iPhone
- 4. información sobre herramientas vacía tema
- 5. Información sobre herramientas para QPushButton
- 6. WPF Enlace a la información sobre herramientas
- 7. información sobre herramientas para Button
- 8. winforms: la información sobre herramientas de las etiquetas de la barra de estado no aparece
- 9. ¿Cómo puedo mostrar una información sobre herramientas que muestra el valor de un control deslizable en WinForms
- 10. muestra información sobre herramientas personalizada al pasar el cursor sobre un punto en flot
- 11. fuente de información sobre herramientas en wpf
- 12. información sobre herramientas celular en SlickGrid
- 13. Definir nueva información sobre herramientas en Emacs
- 14. Información sobre herramientas en una imagen
- 15. Anotaciones Java en eclipse Información sobre herramientas?
- 16. Crear información sobre herramientas para UserControl personalizado
- 17. La información sobre herramientas en el segundo monitor se muestra en el borde del monitor
- 18. Apagar información sobre herramientas en Eclipse/Aptana
- 19. Información sobre herramientas sobre un polígono en Google Maps
- 20. Primefaces información sobre herramientas para p: selectManyCheckbox
- 21. Windows Explorer/Aero estilo información sobre herramientas en C#?
- 22. ¿Cómo se muestra la información sobre herramientas del parámetro de método en C#?
- 23. Información sobre herramientas que no se muestra al pasar el ratón sobre los polígonos SVG
- 24. Mostrar información sobre herramientas en el mouse sobre un texto
- 25. WPF validador personalizado con información sobre herramientas
- 26. ¿Cómo puedo agregar una sugerencia o información sobre herramientas a una etiqueta en C# Winforms?
- 27. Muestra la información sobre herramientas para cada elemento en la fila datagridview cuando el mouse está sobre ella
- 28. Dojo: cómo crear programáticamente Diálogo de información sobre herramientas en el enlace, haga clic en
- 29. Cómo agregar información sobre herramientas a jqgrid
- 30. jQuery + información sobre herramientas de contenido ajax
No creo que esto sea del todo correcto. Si lo hace, se mostrará la información sobre herramientas, pero también se mostrará cada vez que mueva el mouse sobre el control allí después. ¿No hay una forma de mostrar solo la información sobre herramientas en el comando una vez? – PICyourBrain
No, el uso del comando "Mostrar" muestra la información sobre herramientas solo esa vez. Para hacer que la información sobre herramientas aparezca en cualquier momento que el mouse esté sobre el control, establecería la propiedad "ToolTipText" del control mismo. – Keithius
Jordan S tiene razón. El método Show establece el texto de información sobre herramientas asociado con el control especificado. –