2010-06-10 53 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