我也是借鉴了别人的写的,链接: https://blog.youkuaiyun.com/qq_38469552/article/details/114591731只是把他那个整理一下,方便日后使用
第一步,先创建一个提示窗体和一个标签控件(lblTip,显示提示信息),如:TipFrom
第二步,在TipFrom 拖一个定时器 Timer
第三步,建立TipFrom的三个方法,TipFrom_Load(加载)、TipFrom_FormClosing(关闭)、Timer1_Tick(定时器)
第四步,在建立的三个方法和构造方法里面放入对应代码
/// <summary>
/// 构造函数
/// </summary>
/// <param name="point">提示窗体出现的位置</param>
/// <param name="width">需要显示提示框窗体的宽度,如:我想把提示框放在A 窗体显示,那么这个width 参数 就是A 窗体的宽度</param>
/// <param name="width">提示框上显示的提示字符串</param>
public TipFrom(Point point, int width,string messageStr)
{
InitializeComponent();
this.Location = new Point(((width - this.Width) / 2) + point.X, point.Y);//设置出现位置
//lblTip 显示提示信息的Lable
lblTip.Text = messageText;
this.Load += Form1_Load;
this.FormClosing += Form1_FormClosing;
timer1.Tick += timer1_Tick;
}
//加载方法
private void TipFrom_Load(object sender, EventArgs e)
{
//lblTip 显示提示信息的Lable
lblTip.Location = new Point((this.Width - lblTip.Width) / 2, (this.Height - lblTip.Height) / 2);//提示信息居中显示
timer1.Interval = 888 * 2;//显示时间
timer1.Start();
AnimateWindow(this.Handle, 500, AW_VER_POSITIVE);
}
//关闭
private void TipFrom_FormClosing(object sender, FormClosingEventArgs e)
{
AnimateWindow(this.Handle, 500, AW_SLIDE | AW_HIDE | AW_VER_NEGATIVE);
}
//定时器方法
private void timer1_Tick(object sender, EventArgs e)
{
this.Close();
}
第五步,引入user32.dll并创建AnimateWindow方法。user32.dll是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。
public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口
public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口
public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口
public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口
public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。
public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。
public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。
public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。
public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool AnimateWindow(
IntPtr hwnd, // handle to window
int dwTime, // duration of animation
int dwFlags // animation type
);
第六步,设置TipFrom 的属性,分别为如下:
1.关闭Form的Border–> FormBorderStyle=None
2.设置Form显示位置–>StartPosition=Manual
3.设置Form显示最上层–>TopMost=True
4.透明度可自由设置–>Opacity=60%
5.关闭窗体标题栏图标ShowIcon=false
6.关闭窗体任务栏显示ShowInTaskbar=false
第七步,使用,只需在你想让他出现的地方调用show一下即可,如:
Point newPoint = new Point(login_.Location.X, login_.Location.Y);
TipFrom tipFrom = new TipFrom(newPoint, login_.Width,"这是一段提示文字");
tipFrom.ShowDialog(); // 可以用show(),用ShowDialog 主要是让别人看完提示才能操作,但是show不设置的话,用户一直点会一直出现