我正在使用FormBorderStyle制作自定义表单。在表单中,我有一个停靠在表单顶部的面板。面板右侧有一些按钮。
我覆盖了OnPaint表单为其绘制边框,当我调整表单大小时,面板上的按钮仍然在他们的位置。我尝试使用form.Invalidate()但没有任何反应。
对不起,我不允许在这里发布图片。
这里是表格的代码
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Rectangle borderRectangle = this.ClientRectangle;
borderRectangle.Inflate(-1, -1);
//ControlPaint.DrawBorder3D(e.Graphics, borderRectangle, Border3DStyle.RaisedOuter);
ControlPaint.DrawVisualStyleBorder(e.Graphics, borderRectangle);
}
protected override void OnResize(EventArgs e)
{
this.Invalidate(true);
}
答案 0 :(得分:0)
最后,我通过OnClientSizeChanged删除OnResize来解决问题:)
protected override void OnClientSizeChanged(EventArgs e)
{
this.Invalidate(true);
}