ToastForm.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Windows.Forms;
  3. //ToastForm _ToastForm = null;
  4. //public void Toast(string s = "")
  5. //{
  6. // if (_ToastForm == null || _ToastForm.IsDisposed)
  7. // _ToastForm = new ToastForm(this);
  8. // _ToastForm.Toast(s);
  9. //}
  10. namespace Y.Skin.YoForm.Toast
  11. {
  12. public partial class ToastForm : Form
  13. {
  14. Form BaseForm;
  15. DateTime HideTime = DateTime.Now;
  16. int Showtime = 5;
  17. public ToastForm(Form form)
  18. {
  19. InitializeComponent();
  20. BaseForm = form;
  21. }
  22. private void ToastForm_Load(object sender, EventArgs e)
  23. {
  24. TopMost = true;
  25. ShowInTaskbar = false;
  26. }
  27. private void SetPosition()
  28. {
  29. Top = BaseForm.Top + (BaseForm.Height / 2) - (Height / 2);
  30. Left = BaseForm.Left + (BaseForm.Width / 2) - (Width / 2);
  31. }
  32. public void Toast()
  33. {
  34. BaseForm.BeginInvoke(new Action(() =>
  35. {
  36. Show();
  37. HideTime = DateTime.Now.AddSeconds(Showtime);
  38. SetPosition();
  39. TmActor.Interval = 1000;
  40. TmActor.Enabled = true;
  41. }));
  42. }
  43. public void Toast(string s)
  44. {
  45. BaseForm.BeginInvoke(new Action(() =>
  46. {
  47. LbMsg.Text = s;
  48. Show();
  49. HideTime = DateTime.Now.AddSeconds(Showtime);
  50. SetPosition();
  51. TmActor.Interval = 1000;
  52. TmActor.Enabled = true;
  53. }));
  54. }
  55. private void TmActor_Tick(object sender, EventArgs e)
  56. {
  57. if (DateTime.Now > HideTime)
  58. {
  59. Hide();
  60. TmActor.Enabled = false;
  61. }
  62. }
  63. }
  64. }