C#窗体Winform,鼠标悬停在控件上,提示框,显示信息。

文章开始之前,先看下一个简短的录频效果。

实现原理:

他是鼠标悬停在控件上方后,弹出另一个窗体,该窗体可以展示不同的自定义组件,达到显示不同的各种需求的目的。

 

一、先制作容器窗体

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张图所示:

C#窗体Winform,鼠标悬停在控件上,提示框,显示信息。_第1张图片

C#窗体Winform,鼠标悬停在控件上,提示框,显示信息。_第2张图片

SetAutoCloseTimer:设定定时器,该定时器的作用为自动关闭这个提示信息窗体。在一些特定需求下,此方法可能对您很有用。

SetFormBorderStyle:设置弹出信息的窗体边框样式。

SetIcon:设置弹出窗体的图标样式,即左上角的图。

SetTitle:设置弹出窗体的标题。

二、有了容器窗体后,制作自己的用户组件

用户组件,即UserControl。如下图,我做了一个简单的示例组件:

C#窗体Winform,鼠标悬停在控件上,提示框,显示信息。_第3张图片

三、将容器窗体加载到主窗体中

主窗体就是你希望使用弹出信息功能的窗体。即下图界面:

C#窗体Winform,鼠标悬停在控件上,提示框,显示信息。_第4张图片

 

源码下载:https://download.csdn.net/download/mazhiyuan1981/12996475

你可能感兴趣的:(Winform)