在我自己的设计中创建用户控件需要一些帮助。我创建了一个用户控件,它已经快完成了。它只需要点润......
我的问题:
如果我通过按Tab键来关注我的用户控件(在运行时,而不是设计时间),上面会画一个恼人的矩形(黑色)。
这是我目前的解决方案': 只需用右刷子覆盖矩形即可。
private void ButtonOnPaint(object sender, PaintEventArgs e)
{
if (Image != null | BackgroundImage != null)
return;
var penColor = Color.Transparent;
if (!_mouseCurrentMoveOver)
penColor = BackgroundColor;
else if (_mouseCurrentMoveOver)
penColor = MouseOverBackColor;
if (_mouseCurrentDown)
penColor = MouseDownBackColor;
if (penColor == Color.Transparent)
return;
using (var p = new Pen(penColor))
{
var startPoint = new Point(5, 5);
var sizeRectangle = new Size(
_button.Width - startPoint.X * 2 - 1,
_button.Height - startPoint.Y * 2 - 1);
e.Graphics.DrawRectangle(p, startPoint.X, startPoint.Y, sizeRectangle.Width, sizeRectangle.Height);
}
}
这不起作用的原因是,如果我设置 BackgroundImage - 它将被 OnPaint 事件覆盖。
所以问题是:如何禁用此焦点矩形?
答案 0 :(得分:0)
在用户控件的构造函数中,您可以调用
SetStyle(ControlStyles.Selectable, false);
这将禁用在用户控件中选择控件的功能,例如: Tab键。如果这是您想要保留的功能,那么此解决方案对您不起作用。