Hi Samgak/Клийстерс,
I have completed my functionality
// уровень страницы декларации
private Rectangle SelectedRect;
public List<Rectangle> listRec = new List<Rectangle>();
// на странице загрузки добавить все прямоугольник в rectanglelist.
private void Highlightimage_Load(object sender, EventArgs e)
{
for (int i = 0; i < table.Rows.Count; i++)
{
int x = Convert.ToInt32(table.Rows[i][0]);
int y = Convert.ToInt32(table.Rows[i][1]);
int width = Convert.ToInt32(table.Rows[i][2]);
int height = Convert.ToInt32(table.Rows[i][3]);
SelectedRect.Size = new Size(width, height);
SelectedRect.X = x;
SelectedRect.Y = y;
listRec.Add(SelectedRect);
}
}
// нарисовать прямоугольник
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{ Graphics g = e.Graphics;
foreach (Rectangle rec in listRec)
{
Pen p = new Pen(Color.Red);
g.DrawRectangle(p, rec);
}
}
private Rectangle MakeRectangle(int x0, int y0, int x1, int y1)
{
return new Rectangle(
Math.Min(x0, x1),
Math.Min(y0, y1),
Math.Abs(x0 - x1),
Math.Abs(y0 - y1));
}
// наконец на движение мыши Проверка состояния
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
foreach (Rectangle rec in listRec)
{
SelectedRect = MakeRectangle(rec.Left, rec.Top, rec.Right, rec.Bottom);
if (
(e.X >= SelectedRect.Left) && (e.X <= SelectedRect.Right) &&
(e.Y >= SelectedRect.Top) && (e.Y <= SelectedRect.Bottom))
{
MessageBox.Show("test");
}
}
}
также упоминали об этом ссылка Drawing Multiple Rectangles c#
I thought this will help some one.
Thanks
Dev
дал вам KNO w thee size of the photo (при условии, что вы масштабировали их до того же размера), это простая математическая проблема, которая была решена бесчисленное количество раз. – BugFinder
bind MouseEnter и MouseLeave событие каждого picturbox (одно событие для каждого picturbox) и с помощью «отправителя объекта» вы можете добавить границу в событие MouseEnter и удалить границу в событии MouseLeave –
Вы просто хотите проверить, находится ли точка внутри Прямоугольник? В этом случае просто определите прямоугольник минимальным и максимальным x и y и 'if ((point.x> = rectangle.min_x) && (point.x <= rectangle.max_x) && (point.y> = rectangle.min_y) && (point.y <= rectangle.max_y)) 'тогда точка находится внутри прямоугольника – samgak