软件编程
位置:首页>> 软件编程>> C#编程>> C# 重写Notification提示窗口的示例代码

C# 重写Notification提示窗口的示例代码

作者:huang714  发布时间:2021-12-26 19:57:59 

标签:C#,重写,Notification,提示窗口

这个窗口是右下角提示小窗口,主要用于提示。

C# 重写Notification提示窗口的示例代码

private void btnStartNotification_Click(object sender, EventArgs e)
{
Bz.Controls.BzNotification notification = new Bz.Controls.BzNotification();
notification.ShowAlert("启动成功", Bz.Controls.BzNotification.enumType.Success);
}
public partial class BzNotification : Form
{
public static int Count = 0;
       System.Windows.Forms.Timer timer = new Timer();
       private int x, y;
       public event Action OnNotificationClosed;
       private bool isClosed = false;
       public BzNotification()
       {
           InitializeComponent();
           timer.Enabled = true;
           timer.Tick += Timer_Tick;
       }

private void Timer_Tick(object sender, EventArgs e)
       {
           switch (action)
           {
               case enmAction.wait:
                   timer.Interval = 5000;
                   action = enmAction.close;
                   break;
               case enmAction.start:
                   timer.Interval = 1;
                   this.Opacity += 0.1;
                   if (this.x < this.Location.X)
                   {
                       this.Left--;
                   }
                   else
                   {
                       if (this.Opacity == 1.0)
                       {
                           action = enmAction.wait;
                       }
                   }
                   break;
               case enmAction.close:
                   timer.Interval = 1;
                   this.Opacity -= 0.1;
                   this.Left -= 3;
                   if (base.Opacity == 0.0 && isClosed==false)
                   {
                       isClosed = true;
                       base.Close();
                   }
                   break;
               default:
                   break;
           }
       }

public enum enmAction
       {
           wait,
           start,
           close
       }

public enum enumType
       {
           Success,
           Warning,
           Error,
           Info
       }

private enmAction action;

public void ShowAlert(string msg, enumType type)
       {
           this.Opacity = 0.0;
           this.StartPosition = FormStartPosition.Manual;
           this.x = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 15;
           this.y = Screen.PrimaryScreen.WorkingArea.Height - this.Height - this.Height*Count-5*Count;
           this.Location = new Point(this.x, this.y);

this.x = Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;
           switch (type)
           {
               case enumType.Success:
                   picLogo.Image = Properties.Resources.success_icon;
                   this.BackColor = Color.SeaGreen;
                   break;
               case enumType.Error:
                   picLogo.Image = Properties.Resources.error_info;
                   this.BackColor = Color.DarkRed;
                   break;
               case enumType.Info:
                   picLogo.Image = Properties.Resources.info_icon;
                   this.BackColor = Color.RoyalBlue;
                   break;
               case enumType.Warning:
                   picLogo.Image = Properties.Resources.alert_icon;
                   this.BackColor = Color.DarkOrange;
                   break;
           }
           lblMessage.Text = msg;
           this.Show();
           this.action = enmAction.start;
           Count++;
           timer.Interval = 1;
       }

private void picClose_Click(object sender, EventArgs e)
       {
           timer.Interval = 1;
           action = enmAction.close;
           if (Count > 0)
               Count--;
       }

protected override void OnClosed(EventArgs e)
       {
           base.OnClosed(e);
           if (OnNotificationClosed != null)
           {
               OnNotificationClosed();
           }
           if (Count > 0)
               Count--;
       }

}

来源:https://blog.csdn.net/huang714/article/details/124187587

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com