文章开始之前,先看下一个简短的录频效果。
实现原理:
他是鼠标悬停在控件上方后,弹出另一个窗体,该窗体可以展示不同的自定义组件,达到显示不同的各种需求的目的。
一、先制作容器窗体
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TipsWindow
{
public class ExplainForm : FormBase
{
public ExplainForm(Control content);
public Point Offset { get; set; }
public Control Content { get; }
public void SetAutoCloseTimer(int interval = 5000);
public void SetFormBorderStyle(FormBorderStyle style);
public void SetIcon(bool isShowIcon);
public void SetTitle(string title);
protected override void Dispose(bool disposing);
protected override void OnPaint(PaintEventArgs e);
protected override void OnShown(EventArgs e);
}
}
Offset:属性偏移,指偏离鼠标位置。一般如果挨着鼠标来弹出提示信息的话,不好看,所以,会有一个偏移。
Content:既然是容器,那么就要允许别人放东西以供展示,所以Content提供了这样的角色,他的内容展示到容器窗体中。请注意看,Content是Control控件,意味着,你可以自行定义你任何想要的自定义组件,所以,开放自由,是毫无疑问的。所以,你想要什么样子的提示,都可以,如下面2张图所示:
SetAutoCloseTimer:设定定时器,该定时器的作用为自动关闭这个提示信息窗体。在一些特定需求下,此方法可能对您很有用。
SetFormBorderStyle:设置弹出信息的窗体边框样式。
SetIcon:设置弹出窗体的图标样式,即左上角的图。
SetTitle:设置弹出窗体的标题。
二、有了容器窗体后,制作自己的用户组件
用户组件,即UserControl。如下图,我做了一个简单的示例组件:
三、将容器窗体加载到主窗体中
主窗体就是你希望使用弹出信息功能的窗体。即下图界面:
源码下载:https://download.csdn.net/download/mazhiyuan1981/12996475