不显示工具提示-winforms

时间:2019-03-07 12:24:35

标签: c# .net winforms user-controls tooltip

我在表单上有一个usercontrol2(自定义)。我在用户控件上定义了一个工具提示。 usercontrol2上面有一些子控件。

我希望在单击usercontrol2上的特定子控件时显示工具提示。仅当我在子控件之外单击时,工具提示才应隐藏。

当我单击子控件时,将显示工具提示,但是一旦移动鼠标位置,该工具提示就会隐藏。另外,当我在子控件之外单击并再次单击子控件时,不会显示工具提示。

子控件被命名为usercontrol1。

public partial class UserControl2 : UserControl
{
    private Boolean IsToolTipShown;
    public UserControl2()
    {
        InitializeComponent();
        WireControl(userControl11);
        InitiliseToolTip();
    }
    private void WireControl(Control cont)
    {
        cont.MouseClick += UserControlMouseClick;
        foreach (Control ctl in cont.Controls)
        {
            ctl.MouseClick += UserControlMouseClick;
            if (ctl.HasChildren) WireControl(ctl);
        }
    }
    private void UserControlMouseClick(object sender, MouseEventArgs e)
    {
        if (!IsToolTipShown)
        {
            string s = null;
            for (int i = 0; i < 5; i++)
            {
                s += string.Concat(i, Environment.NewLine);
            }
            toolTip1.Show(s, userControl11);
            IsToolTipShown = true;
        }
    }
    private void InitiliseToolTip()
    {
        IsToolTipShown = false;
        toolTip1.AutomaticDelay = 0;
        toolTip1.BackColor = Color.Chartreuse;
        toolTip1.StripAmpersands = true;
        toolTip1.ToolTipIcon = ToolTipIcon.Info;
        toolTip1.UseFading = false;
    }
    protected override void OnMouseClick(MouseEventArgs e)
    {
        base.OnMouseClick(e);
        if (IsToolTipShown)
        {
            toolTip1.Hide(userControl11);
            IsToolTipShown = false;

        }
    }
}

0 个答案:

没有答案