Координаты областей на picturebox для разных событий - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Есть PictureBox с рисунком. Нужно, чтобы при кликах на разных местах этого рисунка выполнялись различные действия (открытие разных форм, например). C# изучать начал недавно, Мне посоветовали воспользоваться Canvas, то, что смог найти по нему:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace test_
{
    public partial class Form1 : Form
    {
        Graphics Canvas;
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Canvas = this.CreateGraphics();
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Canvas.;
        }
    }
}
А дальше меня заклинило. Не могу понять, как задать определенные области для разных событий на одном PictureBox. По канвас информамцию гуглил, но 99% написано об XAML. Или может быть не им нужно пользоваться, или он как-то иначе работает на самом деле?

Решение задачи: «Координаты областей на picturebox для разных событий»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsApplication2
{
    public partial class Form1 : Form
    {
        Point _mouseLocation;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            _mouseLocation = e.Location;
            pictureBox1.Refresh();
        }
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            // Create string to draw.
            if (!_mouseLocation.IsEmpty)
            {
                String drawString = _mouseLocation.ToString();
 
                // Create font and brush.
                Font drawFont = new Font("Arial", 16);
                SolidBrush drawBrush = new SolidBrush(Color.Black);
 
                // Create point for upper-left corner of drawing.
                PointF drawPoint = new PointF(10.0F, 10.0F);
 
                // Draw string to screen.
                e.Graphics.DrawString(drawString, drawFont, drawBrush, drawPoint);
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы