Mostrar una información sobre herramientas sobre un botón usando Windows Forms

¿Cómo puedo mostrar una información sobre herramientas sobre un botón usando Windows Forms ?

La información sobre herramientas es en realidad un control WinForms que maneja la visualización de sugerencias de herramientas para múltiples elementos en un solo formulario.

Digamos que su botón se llama MyButton.

  1. Agregue un control ToolTip (en Controles comunes en la caja de herramientas de Windows Forms) a su formulario.
  2. Ponle un nombre, digamos MyToolTip
  3. Establezca la propiedad “Información sobre herramientas en MyToolTip” de MyButton (en Misc en la cuadrícula de propiedades del botón) en el texto que debe aparecer al pasar el puntero sobre él.

La información sobre herramientas aparecerá automáticamente cuando el cursor se desplace sobre el botón, pero si necesita visualizarlo 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.

Usando el diseñador de formularios:

  • Arrastre el control ToolTip desde la Caja de herramientas al formulario.
  • Seleccione las propiedades del control en el que desea que aparezca la información sobre herramientas.
  • Busque la propiedad ‘Información sobre herramientas en toolTip1’ (el nombre puede no ser toolTip1 si cambió el nombre predeterminado).
  • Establezca el texto de la propiedad en el texto de la información sobre herramientas que le gustaría mostrar.

También puede establecer la información sobre herramientas programáticamente utilizando la siguiente llamada:

 this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip"); 

Puede usar la clase ToolTip:

Crear una información sobre herramientas para un control

Ejemplo:

 private void Form1_Load(object sender, System.EventArgs e) { System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip(); ToolTip1.SetToolTip(this.Button1, "Hello"); } 

Para información sobre herramientas predeterminada, esto se puede usar:

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

También se puede usar una información sobre herramientas personalizada en caso de que se requiera formatear el mensaje de información sobre herramientas. Esto se puede crear personalizando el formato del formulario y utilizándolo 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

.NET Framework 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 una información sobre herramientas, haga algo como lo siguiente:

  private void checkBox1_MouseHover(object sender, EventArgs e) { toolTip1.Show("text", checkBox1); } 

Texto de almacenamiento lento y compacto en la propiedad Tag

Si es un poco flojo y no usa la propiedad Etiqueta de los controles para nada más, puede usarlo para almacenar el texto de información sobre herramientas y asignar controladores de eventos MouseHover a todos esos controles de una vez como este:

  private System.Windows.Forms.ToolTip ToolTip1; private void PrepareTooltips() { ToolTip1 = new System.Windows.Forms.ToolTip(); foreach(Control ctrl in this.Controls) { if (ctrl is Button && ctrl.Tag is string) { ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a) { var btn = (Control)o; ToolTip1.SetToolTip(btn, btn.Tag.ToString()); }); } } } 

En este caso, a todos los botones que tienen una cadena en la propiedad Tag se les asigna un evento MouseHover . Para mantenerlo compacto, el evento MouseHover se define en línea usando una expresión lambda. En el caso de que cualquier botón colocado tenga su texto de etiqueta asignado a la información sobre herramientas y se muestre.

 private void Form1_Load(object sender, System.EventArgs e) { ToolTip toolTip1 = new ToolTip(); toolTip1.AutoPopDelay = 5000; toolTip1.InitialDelay = 1000; toolTip1.ReshowDelay = 500; toolTip1.ShowAlways = true; toolTip1.SetToolTip(this.button1, "My button1"); toolTip1.SetToolTip(this.checkBox1, "My checkBox1"); } 

Claro, simplemente maneje el evento mousehover y dígale que muestre una información sobre herramientas. t es un tooltip definido en los globales o en el constructor usando:

 ToolTip t = new ToolTip(); 

luego el controlador de eventos:

 private void control_MouseHover(object sender, EventArgs e) { t.Show("Text", (Control)sender); }