Это всегда было то, что я использую для этого:
Чтобы изменить цвет границы, вызовите его из обработчика событий Paint
вашего элемента управления Picturebox:
private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, Color.Red, ButtonBorderStyle.Solid);
}
Для динамического изменения цвета границы, например, из события щелчка мышью, я использую свойство Tag
окна Picturebox, чтобы сохранить цвет, и настраиваю событие Click
окна Picturebox, чтобы получить его оттуда. Например:
if (pictureBox1.Tag == null) { pictureBox1.Tag = Color.Red; } //Sets a default color
ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, (Color)pictureBox1.Tag, ButtonBorderStyle.Solid);
Событие Click для Picturebox будет выглядеть примерно так:
private void pictureBox1_Click(object sender, EventArgs e)
{
if ((Color)pictureBox1.Tag == Color.Red) { pictureBox1.Tag = Color.Blue; }
else {pictureBox1.Tag = Color.Red; }
pictureBox1.Refresh();
}
Вам понадобится using System.Drawing;
в начале и не забудьте позвонить pictureBox1.Refresh()
в конце. Наслаждайтесь!