WinForms绘制,然后移动矩形

时间:2014-05-30 12:28:21

标签: c# winforms drawing rectangles

我正在尝试使用C#在WinForms项目中绘制一个矩形。我在表单的Paint事件上绘制矩形:

private void onPaintHandler(object sender, PaintEventArgs e) {
    using (Pen pen = new Pen(Color.Black, 1)) {
        Brush brush = new SolidBrush(Color.Gray);

        e.Graphics.FillRectangle(brush, 0, this.Height - 100, this.Width, 100);
        e.Graphics.DrawRectangle(pen, -1, this.Height - 100, this.Width, 100);

        brush.Dispose();
        pen.Dispose();
    }
}

我有兴趣能够移动矩形。如果我在上面的代码中在运行时更改位置值,我会看到在多个位置绘制的相同矩形,但实际上并没有"移动"。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

您需要持久化类变量中的坐标 并在您更改时调用Invalidate()

这将导致初始Paint事件触发,除了Windows注意到的时间,控件或表单的表面不再有效。

相关问题