Des*_*ire 0 c# visual-studio-2010 winforms
我正在使用面板绘制像圆形的形状,但问题是当我更改制表符或最小化程序然后最大化程序时,然后删除所有绘制的东西.谁能告诉我是什么原因?
由于您没有发布任何代码,因此您的所有读者都会猜测.我的猜测是你最有可能使用CreateGraphics,这可能是一个错误.
您的面板的绘制事件应该如下所示:
private void panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.FillEllipse(Brushes.Red, new Rectangle(10, 10, 32, 32));
}
Run Code Online (Sandbox Code Playgroud)
您可以在绘画事件中完成所有绘图.要强制刷新,只需调用即可panel1.Invalidate()
.
如果绘制到位图,您可以像这样处理它:
Bitmap bmp = new Bitmap(500, 500);
private void button1_Click(object sender, EventArgs e) {
using (Graphics g = Graphics.FromImage(bmp)) {
g.SmoothingMode = SmoothingMode.AntiAlias;
g.Clear(Color.White);
g.FillEllipse(Brushes.Red, new Rectangle(10, 10, 32, 32));
}
panel1.Invalidate();
}
private void panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(bmp, new Point(0, 0));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23879 次 |
最近记录: |