2012-10-11 62 views
0

我正在使用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

的ResizeRedraw屬性設置爲true的形式構造解決了這個問題。 –

回答

0

的代碼最後,我通過OnClientSizeChanged去除onResize受到:)

protected override void OnClientSizeChanged(EventArgs e) 
{ 
    this.Invalidate(true); 
}