项目中的可删除工具提示

时间:2009-08-20 07:22:00

标签: .net tooltip

是否有一种方法可以全局禁用.net项目Visual Studio 2008中的工具提示。 我们已经在网络应用中实施了工具提示,但我希望将其关闭以进行测试。

1 个答案:

答案 0 :(得分:0)

您可以使用ControlAdapter:

namespace Your.Namespace
{
    public class ToolTipsDisablerAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
    {
        public static bool ToolTipsDisabled { get; set; }

        protected override void Render(HtmlTextWriter writer)
        {
            if (ToolTipsDisabled && Control.ToolTip != string.Empty)
            {
                Control.ToolTip = string.Empty;
            }

            base.Render(writer);
        }
    }
}

调用适配器的Render方法来代替它链接到的控件之一。对适配器修改工具提示后,对base.Render的调用可确保调用控件的Render方法。

必须在浏览器定义文件中注册适配器才能工作:

<browsers>
  <browser refID="Default">
    <controlAdapters>
      <adapter controlType="System.Web.UI.WebControls.WebControl" adapterType="Your.Namespace.ToolTipsDisablerAdapter" />
    </controlAdapters>
  </browser>
</browsers>

浏览器定义文件必须放在网站的App_Browsers目录中,扩展名为.browser。

完成后,您可以通过设置

全局启用/禁用工具提示
ToolTipsDisablerAdapter.ToolTipsDisabled = testMode;

编辑:将代码放在Render方法而不是PreRender中。这样可以避免在回发后持续更改(并使用无用的工具提示值阻塞视图状态)。