C# ToolTip控件使用技巧

3,143 阅读8分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情

前言:

我们在做开发界面的时候,需要做点击提示效果,这个ToolTip控件就是一个非常好用的做提示的控件,它不像其他的语言一样需要大量的操作去做这个消息提示的设计,C#没有那么难,C#非常简单,只要调用它的控件就可以使用了,又不用管它是怎么实现的,这篇文章是篇技巧性,我们只是简单的演示一下它的效果,把方法和属性这些总结方便自己下次使用,下次使用不会那么麻烦,创作不易点赞关注评论收藏,你的点赞是我创作的动力,也是我学习的方向!!!

20190724912442_FIJlny.jpg

界面设计:

我们简单的设计一个登录界面,因为登录界面是我们使用提示的最多界面,所以我们简单的设计一下界面,也只是简单的使用并没对输入的数据做正则表达式的校验,所以望大家不要介意,我们只是对这个控件的学习,所以别在意那么多的细节,哈哈哈别喷我啊!!!

image.png

image.png

ToolTip属性

ToolTip使用类时,用户可以在控件上放置指针时向用户提供提示。 该 ToolTip 类通常用于提醒用户对控件的预期用途。 例如,可以为接受名称的控件指定工具提示文本 TextBox ,并指定要键入控件的名称的格式。 除了提供提示外,还可以使用该 ToolTip 类来提供运行时状态信息。 例如,当用户将指针PictureBox移到显示 Internet 连接状态的控件上时,可以使用ToolTip该类显示连接速度和线路质量数据。该 ToolTip 类可用于任何容器。 若要显式指定容器,请使用 ToolTip(IContainer) 构造函数。 单个 ToolTip 组件通常用于为单个窗体上的多个控件创建工具提示。 创建后 ToolTip,使用对方法的单独调用 SetToolTip 将工具提示显示文本关联到单个控件。 然后,当用户在控件上移动指针时,将显示带有其文本的工具提示。 可以多次调用 SetToolTip 同一个控件来更改与控件关联的文本。 若要获取与控件关联的文本,请使用该方法 GetToolTip 。 若要删除与类实例 ToolTip 的所有工具提示文本关联,请使用 RemoveAll 该方法。

image.png

Active  
获取或设置一个值,指示工具提示当前是否活动。
AutomaticDelay  
获取或设置工具提示的自动延迟。
AutoPopDelay    
获取或设置当指针在具有指定工具提示文本的控件内保持静止时,工具提示保持可见的时间期限。
BackColor   
获取或设置工具提示的背景色。
CanRaiseEvents  
获取一个指示组件是否可以引发事件的值。
Container   
获取包含 IContainer 的 Component。
CreateParams    
获取用于工具提示窗口的创建参数。
DesignMode  
获取一个值,用以指示 Component 当前是否处于设计模式。
Events  
获取附加到此 Component 的事件处理程序的列表。
ForeColor   
获取或设置工具提示的前景色。
InitialDelay    
获取或设置工具提示显示之前经过的时间。
IsBalloon   
获取或设置一个指示工具提示是否应使用气球状窗口的值。
OwnerDraw   
获取或设置一个值,该值指示工具提示是由操作系统绘制还是由你提供的代码绘制。
ReshowDelay 
获取或设置指针从一个控件移到另一控件时,必须经过多长时间才会出现后面的工具提示窗口。
ShowAlways  
获取或设置一个值,该值指示是否显示工具提示窗口,甚至是在其父控件不活动的时候。
Site    
获取或设置 Component 的 ISite。
StripAmpersands 
获取或设置一个值,该值确定如何处理 &。
Tag 
获取或设置包含由程序员提供的数据的对象,这些数据与 ToolTip 关联。
ToolTipIcon 
获取或设置一个值,该值定义要在工具提示文本旁显示的图标的类型。
ToolTipTitle    
获取或设置工具提示窗口的标题。
UseAnimation    
获取或设置一个值,该值确定在显示工具提示时是否应使用动画效果。
UseFading   
获取或设置一个值,该值确定在显示工具提示时是否应使用淡入淡出效果。
​

ToolTip方法和事件

///方法
CanExtend(Object)   
如果工具提示可以向指定的目标组件提供一个扩展程序属性,则返回 true。
CreateObjRef(Type)  
创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。
Dispose()   
释放由 Component 使用的所有资源。
Dispose(Boolean)    
释放由 Component 占用的非托管资源,还可以另外再释放托管资源。
Equals(Object)  
确定指定对象是否等于当前对象。
Finalize()  
在垃圾回收器回收 Cursor 之前,释放非托管资源并执行其他清理操作。
GetHashCode()   
作为默认哈希函数。
GetLifetimeService()    
检索控制此实例的生存期策略的当前生存期服务对象。
GetService(Type)    
返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。
GetToolTip(Control) 
检索与指定控件关联的工具提示文本。
GetType()   
获取当前实例的 Type。
Hide(IWin32Window)  
隐藏指定的工具提示窗口。
InitializeLifetimeService() 
获取生存期服务对象来控制此实例的生存期策略。
MemberwiseClone()   
创建当前 Object 的浅表副本。
MemberwiseClone(Boolean)    
创建当前 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() 方法释放组件时发生。
Draw    
当绘制工具提示并将 OwnerDraw 属性设置为 true,以及 IsBalloon 属性为 false 时发生。
Popup   
在工具提示最初显示之前发生。 这是 ToolTip 类的默认事件。

效果展示:

我们只是简单的展示一下,我们可以利用上面的属性设置对它有更多的效果,利用上面的方法可以对它设置更多的操作,我们可以根据自己的需求去调用,方法或设置属性。

image.png

image.png

代码逻辑:

代码逻辑就是在你需要的提示的控件mouseclick函数中添加,鼠标点击提示即可,我们对ToolTip控件进行设计和设置。

image.png

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
​
namespace IC00test823
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
​
        private void Form3_Load(object sender, EventArgs e)
        {
​
        }
​
        private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            toolTip1.AutoPopDelay = 5000;//表示tooltip在这个控件中保留展示的时间
            toolTip1.InitialDelay = 1000;//表示鼠标指针必须在这里静止的时间
            toolTip1.ReshowDelay = 500;//可以缩短或延长在显示上一个工具提示窗口后显示工具提示窗口之前等待的时间tooltip
            toolTip1.ShowAlways = true;//获取或设置一个值,该值指示是否显示工具提示窗口,甚至是在其父控件不活动的时候。
            toolTip1.SetToolTip(textBox1,"用户名为手机号码");
        }
​
        private void textBox2_MouseClick(object sender, MouseEventArgs e)
        {
            toolTip1.AutoPopDelay = 5000;//表示tooltip在这个控件中保留展示的时间
            toolTip1.InitialDelay = 1000;//表示鼠标指针必须在这里静止的时间
            toolTip1.ReshowDelay = 500;//可以缩短或延长在显示上一个工具提示窗口后显示工具提示窗口之前等待的时间tooltip
            toolTip1.ShowAlways = true;//获取或设置一个值,该值指示是否显示工具提示窗口,甚至是在其父控件不活动的时候。
            toolTip1.SetToolTip(textBox2, "密码由*,!,字母,数字组成");
        }
​
        private void button1_Click(object sender, EventArgs e)
        {
            Console.WriteLine("登录操作");
        }
    }
}
​

代码比较简单,但是易懂。

总结:

这篇文章比较简单,只是简单的学习一下,对它有更多的认识,在有需求的时候最起码有路子,虽然很简单,但是也是可以学到东西的,我们学习了新的知识,对我们的知识储备及技术又有新的一点点的进步,C#的技术就是先简单再难嘛,积少成多之后才会成长才会进步,我们要不断的学习不断的探索,才能有学习的动力,才会有学习的欲望,创作不易,点赞评论收藏关注,嘿嘿,不喜勿喷!!!!

20200817629544_bgKxDz.jpg