如何在使用paint时在WinForms中实现垂直和水平滚动条?

时间:2017-05-10 21:20:28

标签: c# winforms

在我的代码中,我画了一个矩形,通常矩形对于屏幕来说太大了,即使最大化也是如此。我已将表单属性AutoScroll设置为true,这似乎没有做任何事情。除了矩形绘画之外,我的表单上还有别的东西,我怎么能实现垂直和水平滚动?

 PrintingDesignForm form = new PrintingDesignForm();

        form.Paint += (se, pe) => {
            var r = new Rectangle(parameters.RectangleXPosition, parameters.RectangleYPosition, (int)Math.Ceiling(parameters.RectangleWidth) * 72, (int)Math.Ceiling(parameters.RectangleLength) * 72);

            var brush = new SolidBrush(Color.FromArgb(255, 255, 204));

            pe.Graphics.FillRectangle(brush, r);
            using (var pen = new Pen(brush.Color, 2))
                pe.Graphics.DrawRectangle(pen, r);
        };

        form.WindowState = FormWindowState.Maximized;
        form.Show();

2 个答案:

答案 0 :(得分:0)

在表单属性集

  

AutoScroll = True

答案 1 :(得分:0)

仅在AutoScroll = true上设置Control/Form只会确保您添加/嵌套的所有Controls将显示或可以通过滚动条将根据需要显示。

这对你画的东西没有任何作用。

要使图形可滚动,您需要将AutoScrollMinSize设置为足够大的值。

如果您事先不知道,那么至少在绘图时您应该能够从您的数据中确定它们。