您好,登錄后才能下訂單哦!
這篇文章主要介紹了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--; } }
關于“C#怎么重寫Notification提示窗口”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“C#怎么重寫Notification提示窗口”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。