C#中,当鼠标移动到控件上,动态显示提示内容 ---- ToolTip控件的使用

【背景】
写了个C#的小程序,其中在Settings窗体中有些配置参数,希望在鼠标移动到对应的配置选项上,动态显示相关的说明解释内容。

【解决过程】
1.原先就已经知道,有些控件,是带ToolTipText的属性的,所以直接写入对应提示内容就可以了。
但是现在想要实现的是带提示内容的控件,也包括那些本身没有ToolTip属性的控件。
所以想要找到对应的解决办法。

2.网上有人说,从ToolBox中拖一个ToolTip,放到对应控件上即可,我试了试,不好用。
因为有些提示内容,是想要单独添加给某个checkbox之类的控件的,
而单独的拖动ToopTip过去,往往只能放到比较大的面板上,比如TabPage上面,所以很不方便自定义。

3.后来参考这里:C#如何实现当鼠标移到button上时,提示该button的功能?
添加对应代码。

再后来也找到了官网的解释:https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.tooltip?view=net-5.0
还是看官方文档比较实在,其中也有对应sample code,供参考

 

 

ToolTip 类

定义

表示一个长方形的小弹出窗口,该窗口在用户将指针悬停在一个控件上时显示有关该控件用途的简短说明。

C#
public class ToolTip : System.ComponentModel.Component, System.ComponentModel.IExtenderProvider
继承:Object  -->  MarshalByRefObject  -->  Component  -->  ToolTip
实现:IExtenderProvider

示例

下面的代码示例创建类的一个实例 ToolTip ,并将该实例与在其中创建该实例的关联 Form 。 然后,该代码初始化延迟属性 AutoPopDelay 、 InitialDelay 和 ReshowDelay 。 此外,类的实例 ToolTip 将 ShowAlways 属性设置为, true 以使 ToolTip 文本始终显示,而不管窗体是否处于活动状态。 最后,该示例将工具提示文本与窗体上的两个控件(和)相关联 Button CheckBox 。 此代码示例要求在示例中定义的方法位于 Form 包含 Button 名为的控件 button1 和 CheckBox 名为的控件 checkBox1 ,并且该方法是从的构造函数中调用的 Form 。

C#
// This example assumes that the Form_Load event handling method
// is connected to the Load event of the form.
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");
}

注解

使用 ToolTip 类,可以在用户将指针放在控件上时向用户提供提示。 ToolTip类通常用于向用户通知控件的预期用途。 例如,可以指定接受名称的控件的工具提示文本 TextBox ,并指定要键入到控件中的名称的格式。 除了提供提示外,还可以使用 ToolTip 类来提供运行时状态信息。 例如, ToolTip 当用户将指针移到 PictureBox 显示 Internet 连接状态的控件上时,可以使用类来显示连接速度和行质量数据。

ToolTip类可以在任何容器中使用。 若要显式指定容器,请使用 ToolTip(IContainer) 构造函数。 单个 ToolTip 组件通常用于为单个窗体上的多个控件创建工具提示。 创建后 ToolTip ,使用单独的方法调用将 SetToolTip 工具提示显示文本关联到单个控件。 然后,当用户将指针移到控件上时,将显示带有其文本的工具提示。 对于同一控件,可以多次调用, SetToolTip 以更改与该控件关联的文本。 若要获取与控件关联的文本,请使用 GetToolTip 方法。若要删除与类的实例关联的所有工具提示文本 ToolTip ,请使用 RemoveAll 方法。

 备注

对于禁用的控件,不显示工具提示文本。 除非将 ShowAlways 属性设置为 true ,否则在其容器处于非活动状态时,不会显示工具提示。

ToolTip类提供以下属性和方法来修改工具提示的默认行为和外观。

如果要禁用所有 ToolTip 文本,使其无法在应用程序中显示,则可以使用 Active 属性。 通常,工具提示是由操作系统绘制的,但若要自定义的外观 ToolTip ,可以将属性设置 OwnerDraw 为 true 并处理 Draw 事件。

ToolTipTitle类实现 System.ComponentModel.IExtenderProvider 接口,该接口具有一个方法 CanExtend 。 工具提示在设计时扩展相同窗体上的控件,添加 ToolTip 属性。 有关扩展程序提供程序的详细信息,请参阅 扩展程序提供程序

构造函数

构造函数
ToolTip()

初始化没有指定容器的 ToolTip 的新实例。

ToolTip(IContainer)

使用指定的容器初始化 ToolTip 类的新实例。

属性

属性
Active

获取或设置一个值,指示工具提示当前是否活动。

AutomaticDelay

获取或设置工具提示的自动延迟。

AutoPopDelay

获取或设置当指针在具有指定工具提示文本的控件内保持静止时,工具提示保持可见的时间期限。

BackColor

获取或设置工具提示的背景色。

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
Container

获取包含 IContainer 的 Component

(继承自 Component)
CreateParams

获取用于工具提示窗口的创建参数。

DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。

(继承自 Component)
Events

获取附加到此 Component 的事件处理程序的列表。

(继承自 Component)
ForeColor

获取或设置工具提示的前景色。

InitialDelay

获取或设置工具提示显示之前经过的时间。

IsBalloon

获取或设置一个指示工具提示是否应使用气球状窗口的值。

OwnerDraw

获取或设置一个值,该值指示工具提示是由操作系统绘制还是由你提供的代码绘制。

ReshowDelay

获取或设置指针从一个控件移到另一控件时,必须经过多长时间才会出现后面的工具提示窗口。

ShowAlways

获取或设置一个值,该值指示是否显示工具提示窗口,甚至是在其父控件不活动的时候。

Site

获取或设置 Component 的 ISite

(继承自 Component)
StripAmpersands

获取或设置一个值,该值确定如何处理 &。

Tag

获取或设置包含由程序员提供的数据的对象,这些数据与 ToolTip 关联。

ToolTipIcon

获取或设置一个值,该值定义要在工具提示文本旁显示的图标的类型。

ToolTipTitle

获取或设置工具提示窗口的标题。

UseAnimation

获取或设置一个值,该值确定在显示工具提示时是否应使用动画效果。

UseFading

获取或设置一个值,该值确定在显示工具提示时是否应使用淡入淡出效果。

方法

方法
CanExtend(Object)

如果工具提示可以向指定的目标组件提供一个扩展程序属性,则返回 true

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

释放由 Component 占用的非托管资源,还可以另外再释放托管资源。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()

在垃圾回收器回收 Cursor 之前,释放非托管资源并执行其他清理操作。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。

(继承自 Component)
GetToolTip(Control)

检索与指定控件关联的工具提示文本。

GetType()

获取当前实例的 Type

(继承自 Object)
Hide(IWin32Window)

隐藏指定的工具提示窗口。

InitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
RemoveAll()

移除当前与工具提示组件关联的所有工具提示文本。

SetToolTip(Control, String)

使工具提示文本与指定的控件相关联。

Show(String, IWin32Window)

设置与指定控件关联的工具提示文本,然后以模式方式显示工具提示。

Show(String, IWin32Window, Int32)

设置与指定控件关联的工具提示文本,然后在指定时间段内保持该工具提示的显示。

Show(String, IWin32Window, Int32, Int32)

设置与指定控件关联的工具提示文本,然后在指定的相对位置以模式方式显示该工具提示。

Show(String, IWin32Window, Int32, Int32, Int32)

设置与指定控件关联的工具提示文本,然后在指定的相对位置和在指定的时间段内保持该工具提示的显示。

Show(String, IWin32Window, Point)

设置与指定控件关联的工具提示文本,然后在指定的相对位置以模式方式显示该工具提示。

Show(String, IWin32Window, Point, Int32)

设置与指定控件关联的工具提示文本,然后在指定的相对位置和在指定的时间段内保持该工具提示的显示。

StopTimer()

停止用于隐藏所显示工具提示的计时器。

ToString()

返回此控件的字符串表示形式。

事件

事件
Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)
Draw

当绘制工具提示并将 OwnerDraw 属性设置为 true,以及 IsBalloon 属性为 false时发生。

Popup

在工具提示最初显示之前发生。 这是 ToolTip 类的默认事件。

适用于

表 6
产品已引入
.NET 5.0
.NET Core 3.0
.NET Framework 1.1

另请参阅

posted on 2020-12-11 11:46  jack_Meng  阅读(7763)  评论(0编辑  收藏  举报

导航