C#:如何将ToolTip添加到控件?

Svi*_*ish 152 c# tooltip winforms

我有一些控件,我想ToolTip在鼠标悬停在它上面时显示.我怎样才能做到这一点?我想知道如何在代码中正确地执行此操作,但也在设计器中(ToolTip在工具箱中有一个组件,但我不完全......得到它).

如果这是重复的话,我不会感到惊讶,但我只能找到更高级,特定场景的问题.我想知道基础知识.

Sve*_*lov 201

是您使用代码执行操作的文章

private void Form1_Load(object sender, System.EventArgs e)
{
     // Create the ToolTip and associate with the Form container.
     ToolTip toolTip1 = new ToolTip();

     // Set up the delays for the ToolTip.
     toolTip1.AutoPopDelay = 5000;
     toolTip1.InitialDelay = 1000;
     toolTip1.ReshowDelay = 500;
     // Force the ToolTip text to be displayed whether or not the form is active.
     toolTip1.ShowAlways = true;

     // Set up the ToolTip text for the Button and Checkbox.
     toolTip1.SetToolTip(this.button1, "My button1");
     toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
Run Code Online (Sandbox Code Playgroud)

  • 一旦它被取消引用它就会被释放,它不会被释放,因为按钮和复选框仍会引用它 (7认同)
  • 所以我想`toolTip1`变量是否超出范围并不重要? (3认同)
  • 我认为将工具提示放入静态变量是个坏主意.如果表格关闭并再次打开怎么办?SetTooltip会再次运作吗?如果是这样,封闭形式的处理程序是否会留在内存中或正确删除?我甚至不会花一分钟来测试它.使用成员变量而不是 - 这是防弹! (3认同)
  • 对于您的所有表单,一个静态的“工具提示”怎么样? (2认同)
  • 他们正在引用它,因为"SetToolTip"会将EventHandlers添加到按钮和复选框的事件中 (2认同)

JYe*_*ton 137

将工具提示控件从工具箱拖到窗体上.你真的不需要给它任何名称以外的属性.然后,在希望有工具提示的控件属性中,查找一个新属性,其中包含刚刚添加的工具提示控件的名称.当光标悬停控件时,默认情况下会为您提供工具提示.

  • 确保在执行此操作时(如凌晨2点)使用ToolTip控件而不是ToolStrip控件. (52认同)
  • 通过这个答案,只需在winform中添加一个工具提示,就可以在表单中为所有控件提供自己的工具提示. (2认同)
  • @AdrianK在凌晨2点,我可能将其读为StoolTrip。>。< (2认同)

Fre*_*örk 39

  1. 将ToolTip组件添加到表单
  2. 选择您想要工具提示的控件之一
  3. 打开属性grid(F4),在列表中你会找到一个名为"ToolTip on toolTip1"的属性(或类似的东西).在该属性上设置所需的工具提示文本.
  4. 对其他控件重复2-3次
  5. 完成.

这里的技巧是ToolTip控件是一个扩展器控件,这意味着它将扩展窗体其他控件的属性集.在幕后,这是通过生成像Svetlozar的答案中的代码来实现的.还有其他控件以相同的方式工作(例如HelpProvider).


小智 8

C#中的ToolTip很容易添加到几乎所有的UI控件中.您无需为此添加任何MouseHover事件.

这是怎么做的 -

  1. 将ToolTip对象添加到表单.一个对象足以满足整个表单. ToolTip toolTip = new ToolTip();

  2. 使用所需文本将控件添加到工具提示.

    toolTip.SetToolTip(Button1,"Click here");