he modificado el código de Gavin Stevens para hacer que todo estática, así:
class ToolTipHelper
{
private static readonly Dictionary<string, ToolTip> tooltips = new Dictionary<string, ToolTip>();
public static ToolTip GetControlToolTip(string controlName)
{
<same as above>
}
}
Ahora usted ya no tiene que crear una instancia de un ToolTipHelper (por lo tanto, no tiene necesidad de constructor), y por lo tanto ahora puede acceder a esto desde cualquier clase como lo siguiente:
ToolTip tt = ToolTipHelper.GetControlToolTip("button1");
tt.SetToolTip(button1, "This is my button1 tooltip");
También es útil con cualquiera de las versiones para activar y desactivar una información sobre herramientas, simplemente puede establecer tt.Active
verdadero o falso.
edición
mejorado aún más en esto:
class ToolTipHelper
{
private static readonly Dictionary<string, ToolTip> tooltips = new Dictionary<string, ToolTip>();
public static ToolTip GetControlToolTip(string controlName)
{
<same as above still>
}
public static ToolTip GetControlToolTip(Control control)
{
return GetControlToolTip(control.Name);
}
public static void SetToolTip(Control control, string text)
{
ToolTip tt = GetControlToolTip(control);
tt.SetToolTip(control, text);
}
}
Así que ahora, un mensaje de ayuda desde cualquier lugar en el programa es sólo una línea:
ToolTipHelper.SetToolTip(button1, "This is my button1 tooltip");
Si no' Necesito tener acceso a las funciones anteriores, puede combinarlas y/o hacerlas privadas, por lo que el SetToolTip()
es el único que nos tiene. mi.
Ah, por lo que sólo debería tener una variable de instancia de clase que sostiene un objeto de información sobre herramientas en su lugar, y volver a utilizarlo cuando se necesita ser cambiado. Muchas gracias. – benmatth