为什么工具提示出现在我的自定义控件上?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么工具提示出现在我的自定义控件上?相关的知识,希望对你有一定的参考价值。

我有一个表单,其中包含一些从Button继承的用户定义控件。当我填充表单并将文本放在控件上时,当我将鼠标悬停在控件上时,其中一些(但不是全部)显示工具提示。工具提示文本与控件的文本相同。

对于相同的数据输入,每次具有此工具提示的控件的选择是相同的。我还没有设法检查它是否是不同数据的相同选择。

有一个与表单关联的工具提示,但其Active属性设置为False,工具提示的文本在程序的此时始终为“”。我测试了这个。

表单和程序是使用VS Community 15.9.7生成的。

有一个带有图标的工具栏显示工具提示,但删除它没有任何效果,所以没有牵连。

我看不到任何.NET文档,这意味着按钮会获得自动工具提示。

代码很难 - 这是一个很大的程序,很多表单代码都是由VS自动生成的。如果有帮助,我会尝试生成一些伪代码。

答案

我发现了正在发生的事情。似乎有一个Button类没有文档的功能。当AutoEllipsis设置为True并且.NET认为由于按钮太小而缺少某些文本时,它会非常有用地为您提供自动工具提示。除了两件事之外,这没什么问题:

  1. 即使文本按钮上有空间,也会显示工具提示。这很烦人但有点好。 Here's an example and another
  2. 工具提示显示在程序员分配给按钮的工具提示的顶部。这是一个真正的痛苦,因为在我的程序中,这取决于程序的状态并具有真正的意义。

以上是关于为什么工具提示出现在我的自定义控件上?的主要内容,如果未能解决你的问题,请参考以下文章

我的自定义控件在页面中为何不能显示?

自定义控件的 FxCop 自定义规则

场景生成器中的自定义控件 ClassNotFoundException

C# 在 DataGridView 上显示我的自定义控件,即使不编辑

为啥我的自定义用户控件的子项没有被初始化?

为啥我的自定义控件不总是接收 MouseEnter 事件?