-5

我在窗口窗体上呈现按钮,其中一些我设置为 enable = false。但我希望工具提示仍然适用于每个按钮,即使它无法启用。我怎么能那样做?

请帮忙。

4

1 回答 1

0

您可以拦截 MouseMove 事件,然后以编程方式显示工具提示。toolTip1 显然是您的表单工具提示

private bool toolTipShown = false;
private void Control_MouseMove(object sender, MouseEventArgs e)
{
    var parent = sender as Control;
    if (parent == null)
    {
        return;
    }
    var ctrl = parent.GetChildAtPoint(e.Location);
    if (ctrl != null)
    {
        if (ctrl.Visible && toolTip1.Tag == null)
        {
            if (!toolTipShown)
            {
                var tipstring = toolTip1.GetToolTip(ctrl);
                toolTip1.Show(tipstring.Trim(), ctrl, ctrl.Width / 2, ctrl.Height / 2);
                toolTip1.Tag = ctrl;
                toolTipShown = true;
            }
        }
    }
    else
    {
        ctrl = toolTip1.Tag as Control;
        if (ctrl != null)
        {
            toolTip1.Hide(ctrl);
            toolTip1.Tag = null;
            toolTipShown = false;
        }
    }
}
于 2013-05-09T12:47:38.693 回答