【问题标题】:c# winforms - scrollable panel with rectanglesc# winforms - 带有矩形的可滚动面板
【发布时间】:2011-03-02 00:00:42
【问题描述】:

我是 winforms 的新手,并试图在没有运气的情况下找到以下问题的答案...

我在 winforms 中有一个面板,并在其中添加一个比面板本身更宽的矩形。我已将面板 AutoScroll 属性设置为 true,但面板水平滚动条永远不会出现。为什么是这样?以及如何让滚动条滚动?

这是我添加矩形的代码:

    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);
    }

如果我将 Label 控件添加到面板并为其提供超出面板边界的文本值 - 那么自动滚动有效,但不适用于矩形。

非常感谢。

【问题讨论】:

    标签: c# winforms system.drawing


    【解决方案1】:

    将 AutoScrollMinSize 属性设置为较大矩形的大小:

    panel1.AutoScrollMinSize = new Size (400, 400)
    

    【讨论】:

    • 感谢您 - 此解决方案运行良好。但是,在来回移动滚动条时,面板似乎并不总是正确地重绘。你知道为什么会发生这种情况吗? ...也许我在这里需要另一个 stackoverflow 问题:-)
    • 确保将 ResizeRedraw 设置为 true 并相对于 DisplayRectangle 进行绘制。例如:矩形 r = DisplayRectangle; r.Inflate (-5, -5); e.Graphics.DrawRectangle (Pens.Blue, r);
    猜你喜欢
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2011-04-05
    • 2019-12-06
    相关资源
    最近更新 更多