using System; using System.Drawing; using System.Windows.Forms; namespace Gs.DevApp { public partial class Toast : DevExpress.XtraEditors.XtraForm { private System.Windows.Forms.Timer tmr; private System.Windows.Forms.Timer tmr2; /// /// /// /// 1成功,-1失败 /// /// public Toast(int it, string messageText, int vanishingSeconds = 2) { InitializeComponent(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Toast)); if (it > 0) this.panel1.BackgroundImage = global::Gs.DevApp.Properties.Resources.ok123; else this.panel1.BackgroundImage = global::Gs.DevApp.Properties.Resources.error123; double elapsedTime = 0; testo.Text = messageText; double vanishingMilliSeconds = vanishingSeconds * 1000; // message dimensions //this.Width = testo.Width + 50; //this.Height = testo.Height + 50; //text position // testo.Location = new Point((this.Width / 2) - (testo.Width / 2), (this.Height / 2) - (testo.Height / 2)); //first timer tmr = new System.Windows.Forms.Timer(); tmr.Tick += delegate { tmr.Stop(); tmr2.Stop(); tmr.Dispose(); tmr2.Dispose(); this.Close(); }; tmr.Interval = (int)TimeSpan.FromSeconds(vanishingSeconds).TotalMilliseconds; tmr.Start(); //second timer tmr2 = new System.Windows.Forms.Timer(); tmr2.Tick += delegate { elapsedTime += 50; if (elapsedTime >= (vanishingMilliSeconds * 65) / 100) this.Opacity -= 0.05f; }; tmr2.Interval = (int)TimeSpan.FromMilliseconds(50).TotalMilliseconds; tmr2.Start(); } private void VanishingMessage_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.DarkRed); SolidBrush sb = new SolidBrush(Color.DarkRed); Rectangle r = this.DisplayRectangle; r.Width -= 1; r.Height -= 1; g.DrawRectangle(p, r); } } }