C# winfrom美化提示框,顶部弹出提示框

我也是借鉴了别人的写的,链接: 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不设置的话,用户一直点会一直出现
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值