Как добавить контекстное меню в нарисованный прямоугольник? - PullRequest
0 голосов
/ 28 августа 2018

Я хочу добавить контекстное меню для динамически нарисованных прямоугольников. Все прямоугольники хранятся в списке. Как мне это сделать?

foreach (Rectangle item in PadRects)
        {
            using (Graphics g = Graphics.FromImage(pictureBox1.Image))
            {
                Pen mypen = new Pen(Color.White, 1);
                g.DrawRectangle(mypen, item);
            }
        }

Я хочу показать контекстное меню с кнопкой для удаления прямоугольника.

Спасибо!

1 Ответ

0 голосов
/ 28 августа 2018

Добавьте ContextMenuStrip к вашей форме.

НЕ выбирайте его как свойство ContextMenuStrip вашего pictureBox1, так как это автоматически откроет контекстное меню. Мы не хотим этого делать, потому что мы хотим проверить, действительно ли мышь указывает на нарисованный прямоугольник, и только затем открыть контекстное меню.

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
    Rectangle rect = PadRects
        .Where(r => r.Contains(e.Location))
        .FirstOrDefault();
    if (!rect.IsEmpty) {
        _clickedRectangle = rect; // Save the rectangle in a field to make it available
                                  // to the context menu item handler.
        contextMenuStrip1.Show(pictureBox1, e.Location);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...