【背景】
写了个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,供参考
定义
表示一个长方形的小弹出窗口,该窗口在用户将指针悬停在一个控件上时显示有关该控件用途的简短说明。
public class ToolTip : System.ComponentModel.Component, System.ComponentModel.IExtenderProvider
- 继承:Object --> MarshalByRefObject --> Component --> ToolTip
示例
Form 。
// 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");
}
注解
PictureBox 显示 Internet 连接状态的控件上时,可以使用类来显示连接速度和行质量数据。
RemoveAll 方法。
备注
ShowAlways 属性设置为 true ,否则在其容器处于非活动状态时,不会显示工具提示。
ToolTip类提供以下属性和方法来修改工具提示的默认行为和外观。
| 类别 | 关联成员 |
|---|---|
| 手动显示 | StopTimer |
| 工具提示计时 | StopTimer |
| Content | RemoveAll |
| 外观 | UseFading |
Draw 事件。
扩展程序提供程序。
构造函数
| ToolTip() |
ToolTip 的新实例。 |
| ToolTip(IContainer) |
ToolTip 类的新实例。 |
属性
| Active |
获取或设置一个值,指示工具提示当前是否活动。 |
| AutomaticDelay |
获取或设置工具提示的自动延迟。 |
| AutoPopDelay |
获取或设置当指针在具有指定工具提示文本的控件内保持静止时,工具提示保持可见的时间期限。 |
| BackColor |
获取或设置工具提示的背景色。 |
| CanRaiseEvents |
获取一个指示组件是否可以引发事件的值。 (继承自 Component) |
| Container |
Component。 (继承自 Component) |
| CreateParams |
获取用于工具提示窗口的创建参数。 |
| DesignMode |
Component 当前是否处于设计模式。 (继承自 Component) |
| Events |
Component 的事件处理程序的列表。 (继承自 Component) |
| ForeColor |
获取或设置工具提示的前景色。 |
| InitialDelay |
获取或设置工具提示显示之前经过的时间。 |
| IsBalloon |
获取或设置一个指示工具提示是否应使用气球状窗口的值。 |
| OwnerDraw |
获取或设置一个值,该值指示工具提示是由操作系统绘制还是由你提供的代码绘制。 |
| ReshowDelay |
获取或设置指针从一个控件移到另一控件时,必须经过多长时间才会出现后面的工具提示窗口。 |
| ShowAlways |
获取或设置一个值,该值指示是否显示工具提示窗口,甚至是在其父控件不活动的时候。 |
| Site |
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) |
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() |
返回此控件的字符串表示形式。 |
事件
适用于
| 产品 | 已引入 |
|---|---|
| .NET | 5.0 |
| .NET Core | 3.0 |
| .NET Framework | 1.1 |