我修改加文·史蒂文斯的代碼,使其所有靜態像這樣:
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