为自定义用户控件创建工具提示

本文关键字:创建 工具提示 控件 用户 自定义 | 更新日期: 2023-09-27 18:18:38

我需要了解如何使用自定义UserControlToolTip。只是在窗体上创建工具提示并指定特定控件的工具提示(通过SetToolTip)显然是行不通的。

为了给自定义UserControl分配工具提示文本,我需要给它什么属性?我需要在用户控件表单上添加工具提示吗?我该怎么做呢?

请提供一个代码样本或我可视化的东西。

谢谢!

为自定义用户控件创建工具提示

在UserControl上放置一个工具提示(使用设计器,就像在表单上放置工具提示一样),并为UserControl添加一个公共属性,如:

    public string TextBoxHint
    {
        get 
        { 
            return toolTip1.GetToolTip(textBox1); 
        }
        set
        {
            toolTip1.SetToolTip(textBox1, value);                
        }
    }
  1. 在用户控件中创建SetToolTip方法并为每个用户控件的子控件设置工具提示:

     public partial class SomeUserControl : UserControl
     {
         public void SetToolTip(ToolTip toolTip)
         {
             string text = toolTip.GetToolTip(this);
             toolTip.SetToolTip(subControl1, text);
             toolTip.SetToolTip(subControl2, text);
             // ...
         }
     }
    
  2. 在父控件设计器中为用户控件实例设置工具提示文本。这添加了.designer文件:

     this.toolTip1.SetToolTip(this.someUserControl1, "Some text.");
    
  3. 使用ToolTip父控件实例从父控件的构造函数调用SetToolTip方法:

     public partial class ParentForm : Form
     {
         public ParentForm()
         {
             InitializeComponent();
             someUserControl1.SetToolTip(toolTip1);
         }
     }
    

这是实现序列化ToolTip属性的正确方法:

public partial class YourControlClass : UserControl
    {
    // Serialized property.
    private ToolTip toolTip = new System.Windows.Forms.ToolTip();
    // Public and designer access to the property.
    public string ToolTip
        {
        get
            {
            return toolTip.GetToolTip(this);
            }
        set
            {
            toolTip.SetToolTip(this, value);
            }
        }