Winfrom自定义弹框设计
2021-03-13 21:28
                         标签:windows   +=   resource   name   --   prim   mouse   lin   val    using System; namespace WinFormUi         public void showAlert(string msg,enmType type)             this.labMsg.Text = msg;         private void frmClose_Click(object sender, EventArgs e)         private void timer1_Tick(object sender, EventArgs e)         private void frmClose_MouseHover(object sender, EventArgs e)         private void frmClose_MouseLeave(object sender, EventArgs e)         public void RightVoiceAndHint() Winfrom自定义弹框设计 标签:windows   +=   resource   name   --   prim   mouse   lin   val    原文地址:https://www.cnblogs.com/Csharp-jd/p/12516036.html
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Media;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinFormUi.Properties;
{
    public partial class Form_Message : Form
    {
        public Form_Message()
        {
            InitializeComponent();
        }
        // 枚举要做的动作
        public enum enmAction
        {
            wait,
            start,
            close
        }
        //枚举弹框类型
        public enum enmType
        {
            success,
            warning,
            error,
            info
        }
        private Form_Message.enmAction action;//用来记录当前弹框状态
        private int x, y;//标注弹框位置
        {
            this.Opacity = 0.0;
            this.StartPosition = FormStartPosition.Manual;
            string fname;
            for (int i = 1; i             {
                fname = "alert" + i.ToString();
                Form_Message frm = (Form_Message)Application.OpenForms[fname];
                if (frm == null)
                {
                    this.Name = fname;
                    this.x = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 15;
                    this.y = Screen.PrimaryScreen.WorkingArea.Height - this.Height * i - 5 * i;
                    this.Location = new Point(this.x, this.y);
                    break;
                }
            }
            this.x = Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;
            switch (type)
            {
                case enmType.success:
                    this.pictureBox2.Image = Resources.success;
                    this.BackColor = Color.SeaGreen;
                    break;
                case enmType.error:
                    this.pictureBox2.Image = Resources.error;
                    this.BackColor = Color.DarkRed;
                    break;
                case enmType.info:
                    this.pictureBox2.Image = Resources.info;
                    this.BackColor = Color.RoyalBlue;
                    break;
                case enmType.warning:
                    this.pictureBox2.Image = Resources.warning;
                    this.BackColor = Color.DarkOrange;
                    break;
            }
            this.Show();
            this.action = enmAction.start;
            this.timer1.Interval = 1;
            RightVoiceAndHint();//加载提示音
            timer1.Start();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //this.frmClose.Image = Resources.close;
        }
        {
            timer1.Interval = 1;
            action = enmAction.close;
        }
        {
            switch (this.action)
            {
                case enmAction.wait:
                    timer1.Interval = 5000;
                    action = enmAction.close;
                    break;
                case enmAction.start:
                    timer1.Interval = 1;
                    this.Opacity += 0.1;
                    if (this.x                     {
                        this.Left--;
                    }
                    else
                    {
                        if (this.Opacity == 1.0)
                        {
                            action = enmAction.wait;
                        }
                    }
                    break;
                case enmAction.close:
                    timer1.Interval = 1;
                    this.Opacity -= 0.1;
                    this.Left -= 3;
                    if (base.Opacity == 0.0)
                    {
                        base.Close();
                    }
                    break;
            }
        }
        {
            this.frmClose.Image = Resources.close_hover;
        }
        {
            this.frmClose.Image = Resources.close;
        }
        {
            //// 获取应用程序的当前工作目录。
            string AppPath = System.IO.Directory.GetCurrentDirectory();
            string Yxpath = AppPath + "\\Alert.wav";
            SoundPlayer player = new SoundPlayer(Yxpath);
            player.Play();
        }
    }
}