【发布时间】:2014-05-30 12:28:20
【问题描述】:
我有一个矩形,我正尝试使用 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();
}
}
我对能够移动矩形很感兴趣。如果我在上面的代码中在运行时更改位置值,我会看到在多个位置绘制了同一个矩形,但实际上并没有“移动”。
感谢您的宝贵时间。
【问题讨论】:
-
您需要保留坐标并在更改时调用 invalidate()。
-
您无需致电
pen.Dispose()...这就是using的用途。出于同样的原因,在Brush上放一个。 -
@Taw 我在表单上调用了
Invalidate(),它按预期工作。如果您发表评论作为答案,我会接受。 -
@DonBoitnott 好点,谢谢。
标签: c# winforms drawing rectangles