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

我也是借鉴了别人的写的,链接: https://blog.csdn.net/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不设置的话,用户一直点会一直出现
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WinFrom 是一个C#的窗体应用程序开发框架,可以帮助我们快速开发Windows操作系统下的可视化应用程序。在 WinFrom 中,我们可以通过设置按钮或其他控件的属性来实现在靠近窗体边框时弹出菜单的功能。 首先,我们可以在窗体上添加一个按钮或其他控件,并设置其位置靠近窗体的边框。然后,在该控件的事件中,我们可以编写逻辑代码来实现菜单的弹出。 有多种方法可以实现该功能,下面是其中一种可供参考的代码示例: ``` // 导入所需的命名空间 using System; using System.Windows.Forms; // 窗体类 public class MyForm : Form { private ContextMenuStrip menuStrip; // 弹出菜单 public MyForm() { // 初始化窗体设置 InitializeComponent(); // 初始化弹出菜单 InitializeMenuStrip(); } private void InitializeComponent() { // 设置窗体属性和布局 ... } private void InitializeMenuStrip() { // 创建菜单项 ToolStripMenuItem menuItem1 = new ToolStripMenuItem("菜单项1"); ToolStripMenuItem menuItem2 = new ToolStripMenuItem("菜单项2"); // 设置菜单项的点击事件处理方法 menuItem1.Click += MenuItem_Click; menuItem2.Click += MenuItem_Click; // 创建菜单 menuStrip = new ContextMenuStrip(); menuStrip.Items.Add(menuItem1); menuStrip.Items.Add(menuItem2); } private void MenuItem_Click(object sender, EventArgs e) { // 处理菜单项的点击事件 // 可根据实际需求编写逻辑代码 ... } protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); // 检查鼠标位置是否位于靠近窗体边框的范围内 if (e.X >= (Width - 50) && e.Y >= (Height - 50)) { // 弹出菜单 menuStrip.Show(this, e.Location); } } } // 主函数 public static class Program { [STAThread] static void Main() { // 创建窗体对象并运行应用程序 Application.Run(new MyForm()); } } ``` 以上代码是一个简单的示例,可以根据具体需求进行修改和调整。在鼠标抬起的事件中,我们通过判断鼠标的坐标位置来确定是否弹出菜单,然后调用 `menuStrip.Show(this, e.Location)` 方法来显示菜单。 通过以上代码,我们可以在WinFrom中实现当鼠标靠近窗体边框时弹出菜单的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值