Handle Mouse click event on an Image

image_pdfimage_print


   

    using System;
  using System.Drawing;
  using System.Drawing.Drawing2D;
  using System.Collections;
  using System.ComponentModel;
  using System.Windows.Forms;
  using System.Data;

  public class Form1 : System.Windows.Forms.Form
  {
    private Image bMapImageA = new Bitmap("winter.jpg");
    private Image bMapImageB = new Bitmap("winter.jpg");
    private Image bMapImageC = new Bitmap("winter.jpg");

    private Rectangle rectA = new Rectangle(10, 10, 90, 90);
    private Rectangle rectB = new Rectangle(10, 110, 90, 90);
    private Rectangle rectC = new Rectangle(10, 210, 90, 90);

    private bool isImageClicked = false;
    private int imageClicked;

    public Form1()
    {
      InitializeComponent();
      CenterToScreen();
    }
    private void InitializeComponent()
    {
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Text = "Form1";
      this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
      this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

    }

    static void Main() 
    {
      Application.Run(new Form1());
    }

    private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
      Point mousePt = new Point(e.X, e.Y);

      if(rectA.Contains(mousePt)) {
        isImageClicked = true;
        imageClicked = 0;
        this.Text = "You clicked image A";
      } else if(rectB.Contains(mousePt)) {
        isImageClicked = true;
        imageClicked = 1;
        this.Text = "You clicked image B";
      } else if(rectC.Contains(mousePt)) {
        isImageClicked = true;
        imageClicked = 2;
        this.Text = "You clicked image C";
      } else {
        isImageClicked = false;
        this.Text = "Images";
      }
      Invalidate();
    }

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Graphics g = e.Graphics;

      g.DrawImage(bMapImageA, rectA);
      g.DrawImage(bMapImageB, rectB);
      g.DrawImage(bMapImageC, rectC);

      if(isImageClicked == true) {
        Pen outline = new Pen(Color.Black, 2);
        switch(imageClicked) {
          case 0:
            g.DrawRectangle(outline, rectA);
            break;
          case 1:
            g.DrawRectangle(outline, rectB);
            break;
          case 2:
            g.DrawRectangle(outline, rectC);
            break;
          default:
            break;
        }
      }
    }
  }


           
          


This entry was posted in Event. Bookmark the permalink.