Parece que el Label
no tiene Hint
ni ToolTip
o Hovertext
propiedad. Entonces, ¿cuál es el método preferido para mostrar una sugerencia, información sobre herramientas o texto flotante cuando Label
se acerca el mouse?
Parece que el Label
no tiene Hint
ni ToolTip
o Hovertext
propiedad. Entonces, ¿cuál es el método preferido para mostrar una sugerencia, información sobre herramientas o texto flotante cuando Label
se acerca el mouse?
Respuestas:
ToolTip
Primero debe agregar un control a su formulario. Luego, puede configurar el texto que debe mostrarse para otros controles.
Aquí hay una captura de pantalla que muestra al diseñador después de agregar un ToolTip
control que se llama toolTip1
:
ToolTip
control puede simplemente registrarse para los eventos del mouse sobre y mostrar el texto apropiado dependiendo del evento generado. Todo esto sucede en segundo plano.
yourToolTip = new ToolTip();
//The below are optional, of course,
yourToolTip.ToolTipIcon = ToolTipIcon.Info;
yourToolTip.IsBalloon = true;
yourToolTip.ShowAlways = true;
yourToolTip.SetToolTip(lblYourLabel,"Oooh, you put your mouse over me.");
Solo para compartir mi idea ...
Creé una clase personalizada para heredar la clase Label. Agregué una variable privada asignada como una clase de información sobre herramientas y una propiedad pública, TooltipText. Luego, le dio un método delegado MouseEnter. Esta es una manera fácil de trabajar con múltiples controles de etiqueta y no tener que preocuparse por asignar su control de información sobre herramientas para cada control de etiqueta.
public partial class ucLabel : Label
{
private ToolTip _tt = new ToolTip();
public string TooltipText { get; set; }
public ucLabel() : base() {
_tt.AutoPopDelay = 1500;
_tt.InitialDelay = 400;
// _tt.IsBalloon = true;
_tt.UseAnimation = true;
_tt.UseFading = true;
_tt.Active = true;
this.MouseEnter += new EventHandler(this.ucLabel_MouseEnter);
}
private void ucLabel_MouseEnter(object sender, EventArgs ea)
{
if (!string.IsNullOrEmpty(this.TooltipText))
{
_tt.SetToolTip(this, this.TooltipText);
_tt.Show(this.TooltipText, this.Parent);
}
}
}
En el método InitializeComponent del formulario o del control de usuario (el código del diseñador), reasigne su control Label a la clase personalizada:
this.lblMyLabel = new ucLabel();
Además, cambie la referencia de la variable privada en el código del diseñador:
private ucLabel lblMyLabel;