0

FormBorderStyle が none のカスタム フォームを作成しています。フォームでは、フォームの上部にパネルがドッキングされています。パネルには、いくつかのボタンが右側にドッキングされています。

フォームの境界線を描画するために 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);
    }
4

1 に答える 1

0

最後に、OnClientSizeChangedによってOnResizeを削除することで問題を解決しました:)

protected override void OnClientSizeChanged(EventArgs e)
{
    this.Invalidate(true);
}
于 2012-10-11T09:53:16.483 に答える