| | |
| | | using DevExpress.XtraEditors; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System; |
| | | using System.Configuration; |
| | | using System.Drawing; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | |
| | | namespace Gs.DevApp |
| | |
| | | { |
| | | private System.Windows.Forms.Timer tmr; |
| | | private System.Windows.Forms.Timer tmr2; |
| | | |
| | | /// <summary> |
| | | /// Shows a message windows. 3 sec is the suggested time |
| | | /// |
| | | /// </summary> |
| | | /// <param name="messageText">Message</param> |
| | | /// <param name="vanishingSeconds">Showing time</param> |
| | | public Toast(System.Drawing.Color bgColor,string messageText, int vanishingSeconds = 2) |
| | | /// <param name="it">1成功,-1失败</param> |
| | | /// <param name="messageText"></param> |
| | | /// <param name="vanishingSeconds">动画延长时间</param> |
| | | public Toast(int it, string messageText, int vanishingSeconds = 5) |
| | | { |
| | | InitializeComponent(); |
| | | this.Appearance.BackColor = bgColor; |
| | | this.StartPosition = FormStartPosition.CenterScreen; // 设置窗体居中显示 |
| | | this.AutoScaleMode = AutoScaleMode.Font; // 根据系统字体大小 |
| | | int clientWidth=0; |
| | | int clientHeight = 0; |
| | | this.lbMsg.BackColor = System.Drawing.Color.Firebrick; |
| | | this.lbMsg.Font = new System.Drawing.Font("Tahoma", 38F); |
| | | this.lbMsg.ForeColor = System.Drawing.Color.White; |
| | | messageText = messageText.Replace("@n", "\r\n"); |
| | | using (Graphics graphics = this.CreateGraphics()) |
| | | { |
| | | Size textSize = TextRenderer.MeasureText(messageText, lbMsg.Font); |
| | | clientWidth = (int)textSize.Width; |
| | | clientHeight= (int)textSize.Height+10; |
| | | } |
| | | this.ClientSize = new System.Drawing.Size(clientWidth, clientHeight); |
| | | this.StartPosition = FormStartPosition.CenterScreen; // 设置窗体居中显示 |
| | | this.AutoScaleMode = AutoScaleMode.Font; // 根据系统字体大小 |
| | | this.CenterToScreen(); |
| | | try |
| | | { |
| | | string _vanishingSeconds = ConfigurationManager.AppSettings["ToastSeconds"]; |
| | | if (!string.IsNullOrEmpty(_vanishingSeconds)) |
| | | vanishingSeconds = int.Parse(_vanishingSeconds); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | } |
| | | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Toast)); |
| | | if (it > 0) |
| | | { |
| | | this.lbMsg.BackColor = System.Drawing.Color.SeaGreen; |
| | | } |
| | | else |
| | | { |
| | | this.lbMsg.BackColor = System.Drawing.Color.Firebrick; |
| | | } |
| | | double elapsedTime = 0; |
| | | testo.Text = messageText; |
| | | lbMsg.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 |
| | | { |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |