我修改加文·史蒂文斯的代码,使其所有静态像这样:
class ToolTipHelper
{
private static readonly Dictionary<string, ToolTip> tooltips = new Dictionary<string, ToolTip>();
public static ToolTip GetControlToolTip(string controlName)
{
<same as above>
}
}
现在你再也不用实例化一个ToolTipHelper(因此它没有需要构造函数),因此你现在可以像这样从任何类访问它:
ToolTip tt = ToolTipHelper.GetControlToolTip("button1");
tt.SetToolTip(button1, "This is my button1 tooltip");
对于任一版本也有用的是打开和关闭工具提示,您可以将tt.Active
设置为true或false。
编辑
在此进一步提高:
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);
}
}
所以现在,在节目从任何地方设置一个工具提示是只有一行:
ToolTipHelper.SetToolTip(button1, "This is my button1 tooltip");
如果你不” t需要访问旧功能,您可以将它们结合起来和/或将它们设为私有,所以SetToolTip()
是我们唯一的一个即
啊,所以我应该只有一个类实例变量来存放一个ToolTip对象,并在需要修改时重新使用它。非常感谢。 – benmatth 2009-07-22 14:16:52