หลังจากที่วาดรูปแล้วต่อไปให้ใส่สี่เมื่อนำเมาส์มาคลิกที่รูปก็ใช้ Region ครับ โดยจะต้องสร้างตัวแปรคลาส ก่อนดังนี้
Region region; //สร้าง object ของคลาส Region
private int x = 0; //กำหนดตัวแปร x เพื่อหาตำแหน่งเริ่มต้นของรูปในแกน x
private int y = 0; //กำหนดตัวแปร y เพื่อหาตำแหน่งเริ่มต้นของรูปในแกน y
จากนั้นในevent Mouse_Click เขียนดังนี้
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
Graphics g = this.CreateGraphics();
if (region.GetBounds(g).Contains(x, y)) //ตรวจสอบว่าคลิกในตำแหน่งที่กำหนดไว้ในRegion หรือไม่
{
g.FillRegion(Brushes.Red, region); // ถ้าคลิกในตำแหน่งของรูปสี่เหลียมที่ถูกต้องก็ให้ใส่สีในรูปสีเหลียมนี้
}
}
ตรง event ที่ใช้วาดรูปก็ต้องเขียน โค้ดตามด้านล่างนี้ด้วยเพื่อที่จะกำหนด Region ได้
GraphicsPath gp = new GraphicsPath();
gp.AddRectangle(new Rectangle(x, y, width, height));
region = new Region(gp);
g.DrawRectangle(Pens.Black, x, y, width, height); //วาดรูปกรอบ (Border) ของรูปสีเหลียม
[With great power comes great responsibility]