2008-10-03 11 views

Respuesta

-4

Claro, solo maneje el evento mousehover y dígale que muestre una información sobre herramientas. t es un texto de ayuda definido ya sea en las variables globales o en el constructor usando:

ToolTip t = new ToolTip(); 

continuación, el controlador de eventos:

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

Creo que lo rechazaron porque esa no es la forma de usar los controles ToolTip en Windows Forms. Solo necesita uno de esos controles en el formulario y muestra los consejos para todos los controles. Ver el código en las otras respuestas. – julianz

+1

Supongo que la explicación no coincide con el código, donde en la explicación que dije lo visualizo y en el código lo inicialicé también. Mi error. : P – Fry

+2

@ julianz En realidad, esto funciona bien para tener tooltips especializados que pueden ser dinámicos si lo desea dependiendo del estado (menos por supuesto que la creación, perdóneme, estaba tratando de encajar todo en un solo bloque). respuestas en una línea similar ... yshuditelu y Dylan Beattie fueron similares aunque sin la instanciación. – Fry

31

Usted puede utilizar la clase de información sobre herramientas:

Creating a ToolTip for a 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"); 
} 
+1

Esta es la solución perfecta ya que se integra directamente con el código VS generado automáticamente. Gracias :) – anon58192932

+0

@DaveK Gracias. Es mejor así porque puedo definir todos los tooltips en un solo lugar – fedeteka

3

.NET framework proporciona una clase de información sobre herramientas. Añadir uno de ellos a su forma y luego en el caso MouseHover de cada artículo que desea una información sobre herramientas, hacer algo como lo siguiente:

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

La información sobre herramientas es en realidad un control de Windows Forms que se encarga de visualización de la información de herramientas para múltiples elementos en una sola forma.

Supongamos que su botón se llama MyButton.

  1. Añadir un control de información sobre herramientas (bajo controles comunes en la caja de herramientas de Windows Forms ) a su forma.
  2. Dale un nombre - dicen MyToolTip
  3. Establecer la propiedad "Información sobre la herramienta en MyToolTip" de MiBoton (en Varios en el botón rejilla de propiedades) para el texto que debe aparecer cuando se pasa sobre ella.

La descripción aparecerá automáticamente al colocar el cursor sobre el botón, pero si se necesita mostrar mediante programación, llame

MyToolTip.Show("Tooltip text goes here", MyButton) 

en el código para mostrar la información sobre herramientas y MyToolTip.Hide (MiBoton) para hacer que desaparezca de nuevo.

+0

nice, pero una pregunta: si tengo más de un botón en un formulario, ¿necesito más información sobre herramientas o puedo configurar múltiples descripciones y botones para la misma información sobre herramientas? – ghiboz

+8

Su formulario solo necesita un solo control ToolTip: cada botón puede tener texto de ayuda diferente (esta es la razón por la cual la "Información sobre herramientas en MyToolTip" es una propiedad del control asociado, no del control ToolTip mismo) –

+2

En el caso más simple, agregue 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 que el objeto ToolTip está necesariamente asociado al Formulario. –

76

Usando el diseñador de formularios:

  • Arrastre el control sobre herramientas de la caja de herramientas, en el formulario.
  • Seleccione las propiedades del control en el que desea que aparezca la información sobre herramientas.
  • Encuentra la propiedad 'Información sobre herramientas en toolTip1' (el nombre puede no ser toolTip1 si cambiaste el nombre predeterminado).
  • Establezca el texto de la propiedad en el texto de la información sobre herramientas que desea mostrar.

También puede ajustar la punta de la herramienta mediante programación utilizando la siguiente llamada:

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

Para información sobre herramientas defecto, ésta se puede utilizar -

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

Una información sobre herramientas personalizadas también se pueden utilizar en caso si se requiere formatear para 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 verifique siguiente enlace para más detalles -

http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html

3

perezoso y el texto almacenamiento compacto en la Tag propiedad

Si usted es un poco perezoso y no utiliza el Tag propiedad de los controles para cualquier otra cosa que usted puede usar para almacenar el texto de información sobre herramientas y asignar MouseHover controladores de eventos a todos los controles de una sola 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 todos los botones que tienen una cadena en el propiedad etiqueta se le asigna un eventoMouseHover. Para mantenerlo compacto, el evento MouseHover se define en línea utilizando una expresión lambda. En el caso de que un botón esté suspendido, tendrá su Tag texto asignado a la información sobre herramientas y se mostrará.

0
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");} 
+1

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación.Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – secelite

Cuestiones relacionadas