c# - this.Refresh() 阻止新图
问题描述
我正在开发一个程序,通过绘制事件在标签内绘制一个矩形。然后通过按钮单击事件,我想重新绘制标签内部,现在具有原始矩形和一个新矩形,即 .TranslateTransform 一些输入。现在问题来了:我能够创建新的原件和副本,但是如果我按下按钮,我就会得到副本的副本。我想如果在重绘之前我使用 label.Refresh() 或 .Invalidate() 可以解决这个问题,但现在我什至无法获得一个副本。
在此先感谢您的帮助。这是代码:
public int x, y;
public float p, q;
Graphics g;
SolidBrush brush1 = new SolidBrush(Color.Green);
public Form1()
{
InitializeComponent();
}
private void label5_Paint_1(object sender, PaintEventArgs e)
{
g = e.Graphics;
g.FillRectangle(brush1, 50, 50, 100, 50);
}
private void shift(object sender, PaintEventArgs e)
{
string a, b;
a = textBox1.Text;
x = int.Parse(a);
b = textBox2.Text;
y = int.Parse(b);
var g = e.Graphics;
Brush br = new SolidBrush(Color.DarkOrange);
g.TranslateTransform(x, y);
g.FillRectangle(br, 50, 50, 100, 50);
}
private void button1_Click(object sender, EventArgs e)
{
label5.Invalidate();
label5.Paint += new PaintEventHandler(shift);
}
private void resize(object sender, PaintEventArgs e)
{
string c, d;
c = textBox3.Text;
p = float.Parse(c);
d = textBox4.Text;
q = float.Parse(d);
var g = e.Graphics;
Brush br = new SolidBrush(Color.DarkOrange);
g.ScaleTransform(p, q);
g.FillRectangle(br, 50, 50, 100, 50);
}
private void button2_Click(object sender, EventArgs e)
{
label5.Invalidate();
label5.Paint += new PaintEventHandler(resize);
}
解决方案
推荐阅读
- r - 有没有更优雅的方式在 R Shiny 中动态创建变量?
- java - 登录 Unix 位置
- angular - Angular http post请求失败
- java - 读取和写入txt文件
- excel - Soundcloud 歌曲名称
- python - GCP 中的 PySpark 内核 - Unicode 字符串
- file-io - 从 emscripten 读取大型用户提供的文件,一次读取一个块
- linux - 在 ambari 集群中使用不同操作系统版本时如何禁用脚本 os_check_type.py
- c# - 在 Xamarin 表单中选择多个多边形(Android 和 iOS)
- javascript - 电子表格无法运行脚本