如何显示已与控件关联的所有工具提示

时间:2010-08-18 11:37:07

标签: c# tooltip

我有一个包含控件和相关工具提示的表单。我正在实现一个帮助按钮,它应该立即显示所有工具提示。

我想以某种方式实现它:

private void btnHelp_Click(object sender, EventArgs e)
{
     System.Windows.Forms.Control.All.Show.Their.Tooltips();
}

无法找到一种简单的方法: - )

我正在考虑使用ToolTip.Show(),但它不仅需要控件,还需要工具提示文本 - 但我不想再写它(因为必要的工具提示已经在控件的属性中分配)。

UPD。 我开始用这个函数实现它:

  public void ShowControlsTooltip(System.Windows.Forms.Control c)
    {
        ttsToolTips.Show(ttsToolTips.GetToolTip(c), c, c.Location.X, c.Location.Y);
    }

但我无法同时显示多个工具提示。

UPD2。 现在我有了这种代码,但所有工具提示仍然闪烁并消失。

public void ShowControlsTooltip(System.Windows.Forms.Control c)
{
    ToolTip t = new ToolTip();
    //t = ttsToolTips;
    t.Show(ttsToolTips.GetToolTip(c), c, c.Location.X, c.Location.Y, 1000);
}

private void btnHelp_Click(object sender, EventArgs e)
{
    foreach (Control c in this.Controls)
    {
        try
        {
            ShowControlsTooltip(c);
        }
        catch 
        { 

        }
    }
}

ttsToolTips的用处是我已经拥有了所有的工具提示关联。

UPD3。它看起来很有效。但坐标并不精确。

现在最大的问题是 - 如何立即删除所有这些工具提示?

1 个答案:

答案 0 :(得分:1)

foreach(Control c in Form.Controls)
{
    string s  = Tooltip.GetTooltip(c);
    c.ShowTooltip(s,this);
}