La información sobre herramientas es en realidad un control WinForms que maneja la visualización de información sobre herramientas para múltiples elementos en un solo formulario.
Digamos que su botón se llama MyButton.
Agregue un control de información sobre herramientas (en Controles comunes en el cuadro de herramientas de formularios Windows Forms) a su formulario.
Dale un nombre, di MyToolTip
Establezca la propiedad "Información sobre herramientas en MyToolTip" de MyButton (en Varios en la cuadrícula de propiedades del botón) en el texto que debería aparecer cuando se pasa el cursor sobre él.
La información sobre herramientas aparecerá automáticamente cuando el cursor se desplace sobre el botón, pero si necesita mostrarlo programáticamente, llame
MyToolTip.Show("Tooltip text goes here",MyButton)
en su código para mostrar la información sobre herramientas, y MyToolTip.Hide (MyButton) para que desaparezca nuevamente.
bueno, pero una pregunta: si tengo más de un botón en un formulario, ¿necesito más información sobre herramientas o puedo configurar varias descripciones y botones para la misma información sobre herramientas?
ghiboz
8
Su formulario solo necesita un control ToolTip: cada botón puede tener un texto de ayuda diferente (es por eso que "Tooltip on MyToolTip" es una propiedad del control asociado, no del control ToolTip en sí)
Dylan Beattie
2
En el caso más simple, agregar la información sobre herramientas al formulario es lo mejor que se puede hacer. Problema: en el momento del diseño de un Control personalizado no tiene referencia al Formulario principal. Solución: cree un objeto de información sobre herramientas en el Control. No piense en el objeto de información sobre herramientas como necesariamente adjunto al formulario.
Stéphane Gourichon
93
Usando el diseñador de formularios:
Arrastre el control de información sobre herramientas desde el cuadro de herramientas hasta el formulario.
Seleccione las propiedades del control en el que desea que aparezca la información sobre herramientas.
Busque la propiedad 'ToolTip on toolTip1' (el nombre puede no ser toolTip1 si cambió su nombre predeterminado).
Establezca el texto de la propiedad en el texto de información sobre herramientas que desea mostrar.
También puede configurar la información sobre herramientas mediante programación mediante la siguiente llamada:
Una información sobre herramientas personalizada también se puede utilizar en caso de que se requiera formatear el mensaje de información sobre herramientas. Esto se puede crear formateando el formulario de forma personalizada y usarlo como diálogo de información sobre herramientas en el evento de desplazamiento del mouse del control. Por favor, consulte el siguiente enlace para más detalles:
Texto de almacenamiento lento y compacto en la propiedad Etiqueta
Si es un poco vago y no usa la propiedad Etiqueta de los controles para nada más, puede usarla para almacenar el texto de información sobre herramientas y asignar MouseHover eventos a todos esos controles de una sola vez:
En este caso, a todos los botones que tienen una cadena en la propiedad Etiqueta se le asigna un evento MouseHover . Para mantenerlo compacto, el evento MouseHover se define en línea utilizando una expresión lambda. En el caso de que cualquier botón suspendido tenga su texto de etiqueta asignado a la información sobre herramientas y se muestre.
El marco .NET proporciona una clase de información sobre herramientas. Agregue uno de esos a su formulario y luego, en el evento MouseHover, para cada elemento para el que desea obtener información sobre herramientas, haga algo como lo siguiente:
Si bien este fragmento de código puede resolver la pregunta, incluir una explicación realmente ayuda a mejorar la calidad de su publicación. Recuerde que está respondiendo la pregunta para los lectores en el futuro, y que esas personas podrían no conocer los motivos de su sugerencia de código.
Claro, solo maneja el evento mousehover y dile que muestre información sobre herramientas. t es una información sobre herramientas definida en los globales o en el constructor usando:
Creo que te rechazaron porque esa no es la forma de usar los controles de información sobre herramientas en formularios Windows Forms. Solo necesita uno de esos controles en el formulario y muestra los consejos para todos los controles. Ver código en las otras respuestas.
Julian Melville
1
Supongo que la explicación no coincide con el código, donde en la explicación que dije lo muestra y en el código también lo inicialicé. Culpa mía. : P
Fry
2
@ julianz En realidad, esto funciona bien para tener información sobre herramientas especializadas que pueden ser dinámicas si lo deseas dependiendo del estado (menos, por supuesto, la creación, perdóname, solo estaba tratando de encajar todo en un bloque). En cuanto a otras respuestas en un vena similar ... yshuditelu y Dylan Beattie eran similares aunque sin la instanciación.
Respuestas:
La información sobre herramientas es en realidad un control WinForms que maneja la visualización de información sobre herramientas para múltiples elementos en un solo formulario.
Digamos que su botón se llama MyButton.
La información sobre herramientas aparecerá automáticamente cuando el cursor se desplace sobre el botón, pero si necesita mostrarlo programáticamente, llame
en su código para mostrar la información sobre herramientas, y MyToolTip.Hide (MyButton) para que desaparezca nuevamente.
fuente
Usando el diseñador de formularios:
También puede configurar la información sobre herramientas mediante programación mediante la siguiente llamada:
fuente
Puede usar la clase ToolTip:
Crear una información sobre herramientas para un control
Ejemplo:
fuente
new ToolTip().SetToolTip(this.Button1, "Hello");
Para la información sobre herramientas predeterminada, esto se puede utilizar:
Una información sobre herramientas personalizada también se puede utilizar en caso de que se requiera formatear el mensaje de información sobre herramientas. Esto se puede crear formateando el formulario de forma personalizada y usarlo como diálogo de información sobre herramientas en el evento de desplazamiento del mouse del control. Por favor, consulte el siguiente enlace para más detalles:
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
fuente
Texto de almacenamiento lento y compacto en la propiedad Etiqueta
Si es un poco vago y no usa la propiedad Etiqueta de los controles para nada más, puede usarla para almacenar el texto de información sobre herramientas y asignar MouseHover eventos a todos esos controles de una sola vez:
En este caso, a todos los botones que tienen una cadena en la propiedad Etiqueta se le asigna un evento MouseHover . Para mantenerlo compacto, el evento MouseHover se define en línea utilizando una expresión lambda. En el caso de que cualquier botón suspendido tenga su texto de etiqueta asignado a la información sobre herramientas y se muestre.
fuente
El marco .NET proporciona una clase de información sobre herramientas. Agregue uno de esos a su formulario y luego, en el evento MouseHover, para cada elemento para el que desea obtener información sobre herramientas, haga algo como lo siguiente:
fuente
fuente
Basado en la respuesta de DaveK , creé una extensión de control:
Luego puede configurar la información sobre herramientas para cualquier control con una sola línea:
fuente
Claro, solo maneja el evento mousehover y dile que muestre información sobre herramientas. t es una información sobre herramientas definida en los globales o en el constructor usando:
entonces el controlador de eventos:
fuente