2010-06-10 76 views
0

我是新來的WinForms,並試圖追查的答案,沒有運氣以下...C#的WinForms - 滾動面板矩形

我在的WinForms面板,並給它添加一個矩形,比面板本身更寬。我已將面板AutoScroll屬性設置爲true,但面板水平滾動條從不出現。爲什麼是這樣?我如何讓滾動條滾動?

這裏是我的代碼添加矩形:如果我添加一個Label控件面板,並給它一個文本值將超越面板的邊界

private void panel1_Paint(object sender, PaintEventArgs e) 
    { 
     Graphics g = e.Graphics; 

     Rectangle rec = new Rectangle(2, 2, 400, 40); 
     g.DrawRectangle(new Pen(Color.Black), rec); 
     g.FillRectangle(new SolidBrush(Color.Blue), rec); 
    } 

- 然後自動滾屏的作品,但不是一個矩形。

非常感謝。

回答

2

設置AutoScrollMinSize屬性還以較大的矩形的大小:

panel1.AutoScrollMinSize = new Size (400, 400) 
+0

感謝這個 - 這個解決方案正常工作。但是,當來回移動滾動條時,面板似乎總是無法正常重繪。你有什麼想法爲什麼會發生? ...也許我需要在這裏另一個stackoverflow問題:-) – Peanut 2010-06-10 05:28:01

+0

請確保您將ResizeRedraw設置爲true,並相對於DisplayRectangle繪製。例如:Rectangle r = DisplayRectangle; r.Inflate(-5,-5); e.Graphics.DrawRectangle(Pens.Blue,r); – 2010-06-10 08:11:22