我将一个winform作为对话框显示(在主窗口上使用ShowDialog)。 因此,我将FormBorderStyle设置为None,因为我既不需要控制箱也不需要标题栏。 虽然,我想绘制一个边框(例如像普通窗口一样的蓝色边框)并保留移动窗体的能力。 我不需要调整它的大小。 我试图通过重写OnPaint来绘制边框,但它从不被调用。 这里是我的代码:当FormBorderStyle设置为None时,winforms绘制边框并移动。
protected override void OnPaint (PaintEventArgs e)
{
base.OnPaint (e);
int borderWidth = 2;
Color borderColor = Color.Blue;
ControlPaint.DrawBorder (e.Graphics, e.ClipRectangle, borderColor,
borderWidth, ButtonBorderStyle.Solid, borderColor, borderWidth,
ButtonBorderStyle.Solid, borderColor, borderWidth, ButtonBorderStyle.Solid,
borderColor, borderWidth, ButtonBorderStyle.Solid);
}
任何帮助将不胜感激。
请使用可用来标记代码格式化工具,使得它更容易阅读的问题这样... – JohnoBoy 2010-10-25 09:24:41
你的代码工作正常,当我把它贴到表单中。 – 2010-10-25 09:43:02
我想代码是好的,它只是不叫! – Pierre 2010-10-25 10:04:39