tôi đổi mã Gavin Stevens của để làm cho nó tất cả tĩnh như vậy:
class ToolTipHelper
{
private static readonly Dictionary<string, ToolTip> tooltips = new Dictionary<string, ToolTip>();
public static ToolTip GetControlToolTip(string controlName)
{
<same as above>
}
}
Bây giờ bạn không còn phải nhanh chóng một ToolTipHelper (do đó nó không có cần cho constructor), và do đó bạn có thể truy cập vào lớp này từ bất kỳ lớp nào như vậy:
ToolTip tt = ToolTipHelper.GetControlToolTip("button1");
tt.SetToolTip(button1, "This is my button1 tooltip");
Cũng hữu ích với cả hai phiên bản là bật và tắt chú giải công cụ, bạn chỉ có thể đặt tt.Active
đúng hoặc sai.
chỉnh sửa
cải thiện hơn nữa về vấn đề này:
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);
}
}
Vì vậy, bây giờ, thiết lập một ToolTip từ bất cứ nơi nào trong chương trình chỉ là một dòng:
ToolTipHelper.SetToolTip(button1, "This is my button1 tooltip");
Nếu bạn don' t cần truy cập vào các chức năng cũ, bạn có thể kết hợp chúng và/hoặc đặt chúng ở chế độ riêng tư, do đó, SetToolTip()
là chỉ có một bạn e.
Nguồn
2012-05-05 20:41:35
Ah, vì vậy, tôi chỉ cần có biến phiên bản lớp đang giữ đối tượng ToolTip thay vào đó và sử dụng lại khi cần thay đổi. Cảm ơn rất nhiều. – benmatth