C# Exercises

Home AgriMetSoft About Contact

Custom MessageBox in WinForms c#

	    
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Custom_MessageBox_WinForms
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      button1.BackColor = Color.GreenYellow;
      button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
      button1.FlatAppearance.BorderColor = Color.Black;
      button1.FlatAppearance.BorderSize = 2;

      button1.Click += button1_Click;
    }

    private void button1_Click(object sender, EventArgs e)
    {
      MyAlert frm = new MyAlert();
      if(radioButton1.Checked)
        frm.showAlert(textBox1.Text, MyAlert.enmType.Success);
      if (radioButton2.Checked)
        frm.showAlert(textBox1.Text, MyAlert.enmType.Warning);
      if (radioButton3.Checked)
        frm.showAlert(textBox1.Text, MyAlert.enmType.Info);
      if (radioButton4.Checked)
        frm.showAlert(textBox1.Text, MyAlert.enmType.Error);

    }
  }



}

//================MyAlert Form===================
using Custom_MessageBox_WinForms.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Custom_MessageBox_WinForms
{
  public partial class MyAlert : Form
  {
    Timer timer1;
    public MyAlert()
    {
      InitializeComponent();
      this.FormBorderStyle = FormBorderStyle.None;
      timer1 = new Timer();
      timer1.Tick += timer1_Tick; ;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
      switch (this.action)
      {
        case enmAction.wait:
          timer1.Interval = 5000;
          action = enmAction.close;
          break;
        case MyAlert.enmAction.start:
          this.timer1.Interval = 1;
          this.Opacity += 0.1;
          if (this.x < this.Location.X)
          {
            this.Left--;
          }
          else
          {
            if (this.Opacity == 1.0)
            {
              action = MyAlert.enmAction.wait;
            }
          }
          break;
        case enmAction.close:
          timer1.Interval = 1;
          this.Opacity -= 0.1;

          this.Left -= 3;
          if (base.Opacity == 0.0)
          {
            base.Close();
          }
          break;
      }
    }
    private void button1_Click(object sender, EventArgs e)
    {
      this.Close();
    }
    public enum enmAction
    {
      wait,
      start,
      close
    }

    public enum enmType
    {
      Success,
      Warning,
      Error,
      Info
    }
    private MyAlert.enmAction action;
    private int x, y;
    public void showAlert(string msg, enmType type)
    {
      this.Opacity = 0.0;
      this.StartPosition = FormStartPosition.Manual;
      string fname;

      for (int i = 1; i < 10; i++)
      {
        fname = "alert" + i.ToString();
        MyAlert frm = (MyAlert)Application.OpenForms[fname];

        if (frm == null)
        {
          this.Name = fname;
          this.x = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 15;
          this.y = Screen.PrimaryScreen.WorkingArea.Height - this.Height * i - 5 * i;
          this.Location = new Point(this.x, this.y);
          break;

        }

      }
      this.x = Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;

      switch (type)
      {
        case enmType.Success:
          this.pictureBox1.Image = Resources.tick;
          this.BackColor = Color.SeaGreen;
          break;
        case enmType.Error:
          this.pictureBox1.Image = Resources.error;
          this.BackColor = Color.DarkRed;
          break;
        case enmType.Info:
          this.pictureBox1.Image = Resources.info;
          this.BackColor = Color.RoyalBlue;
          break;          
        case enmType.Warning:
          this.pictureBox1.Image = Resources.Warning;
          this.BackColor = Color.DarkOrange;
          break;
      }


      this.lblMsg.Text = msg;

      this.Show();
      this.action = enmAction.start;
      this.timer1.Interval = 1;
      this.timer1.Start();
    }

  }
}
		
	 


Download the project of Visual Studio 2013 in DropBox Download


C# Custom MessageBox WinForms | Popup Notification in C#


List of Exercises