我目前正在为标签添加一个工具提示,如下所示:
ToolTip LabelToolTip = new System.Windows.Forms.ToolTip();
LabelToolTip.SetToolTip(this.LocationLabel, text);
当我需要随着标签文本的变化而更改此工具提示时,我会尝试执行相同的操作以添加新的工具提示。不幸的是,旧的工具提示仍然在新的工具提示下,这真的很烦人。有没有一种方法可以删除旧的工具提示,或者当我想更改标签中的文本时,我应该只创建一个新标签?
6条答案
按热度按时间yqkkidmi1#
创建
ToolTip
的单个示例,并在您想要使用SetToolTip
方法显示它并使用Hide
方法隐藏它时使用它。一般来说,不需要创建多个ToolTip
示例。iszxjhcz2#
工具提示对象同时在多个控件中工作。创建工具提示的单个示例,并使用它来添加和移除任何控件的工具提示。
当添加时,你应该使用.SetToolTip(Control,“悬停时出现的消息”)当删除时,你只需要使用.SetToolTip(Control,null)将其设置为null。
3yhwsihp3#
我修改了Gavin Stevens的代码,使其像这样静态:
现在你不再需要示例化ToolTipHelper(因此它不需要构造函数),因此你现在可以从任何类访问它,如下所示:
在这两个版本中,打开和关闭工具提示也很有用,你可以只设置
tt.Active
true或false。编辑
在此基础上进一步改进:
所以现在,从程序中的任何地方设置工具提示只有一行:
如果你不需要访问旧的函数,你可以将它们合并组合起来,或者将它们私有化,这样
SetToolTip()
就是你唯一使用过的。uoifb46i4#
使用方法:
uhry853o5#
要简单地从控件中删除工具提示,可以像这样修改类:
然后使用这个命令:
2exbekwf6#
我也有同样的问题。我在设计表单中添加了一个tooTip组件并使用了它。我定义了一个文本,如““在杂项部分在属性窗口的控制,我想有工具提示文本。在那之后,每次我改变我的组件的工具提示测试时,它都不会出现以前分配的测试,并且工作得很好。
在表单代码中:
(请注意,当向表单添加工具提示时,代码生成器会创建上面的行,我将其修饰符更改为public,因为它是必需的,但如果您不需要它,请不要更改它)
在程序中更改控件的工具提示文本: