Вы не сказали как вы рисуете границу, но из своего описания вы создаете графический контекст для этого.Не делай этого, это неправильно.Вместо этого нарисуйте элемент Paint
элемента управления или его родительского контейнера.
Обработчик события Paint
может выглядеть следующим образом:
private void yourControl_Paint(object sender, PaintEventArgs e)
{
if (! HasFocus(yourControl))
return;
Graphics g = e.Graphics;
using (Pen p = new Pen(Color.FromArgb(128, 0, 0, 128)))
g.DrawRectangle(p, 0, 0, yourControl.Width -1, yourControl.Height - 1);
}
При этом используется гипотетический метод HasFocus
, чтобы определить, должен ли этот элемент управления иметь прямоугольник фокуса.
Кстати, это идентично в VB и C #.