Я хочу предложить ответ после некоторых манипуляций с кодом.
Хитрость в том, чтобы проверить, сфокусирован ли элемент управления в методе OnPaint, и нарисовать прозрачную или черную рамку:
gxOff.DrawRectangle(new Pen((this.Focused) ? Color.Black : Color.Transparent), rc);
и вызов Invalidate () в событиях OnGotFocus и OnLostFocus:
protected override void OnGotFocus(EventArgs
{
base.OnGotFocus(e);
this.Invalidate();
}
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e);
this.Invalidate();
}
Надеюсь, это кому-нибудь поможет:)