如何从按钮点击事件中调用绘画事件?
How to call paint event from a button click event?
我有一个带有事件 "paint" 的 pictureBox,我也在其中获取了绘制图形的代码。
如:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
graphics.DrawEllipse(Pens.Blue, 10, 10, 100, 100);
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Invalidate();
}
}
}
我的问题是。如何从 button_click 事件中触发这些事件?我在网上搜索了很多,发现了很多像“.invalidate()”或“.Refresh()”和“.Update”这样的awnsers。但是我的作业告诉我,我需要使用 .Refresh() 方法来完成,并且绘画需要在 pictureBox 中。
我从 .Refresh() 方法中注意到了什么。是它擦除 pictureBox(绘制 pictureBox 是如何在初始化时创建的)。所以在按钮中关闭 .Refresh 方法对我不起作用。
关于如何从按钮触发绘制事件的任何其他建议?
这应该可以解决问题:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
private void button1_Click(object sender, EventArgs e)
{
using (var g = Graphics.FromImage(pictureBox1.Image))
{
g.DrawEllipse(Pens.Blue, 10, 10, 100, 100);
pictureBox1.Refresh();
}
}
}
我有一个带有事件 "paint" 的 pictureBox,我也在其中获取了绘制图形的代码。
如:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
graphics.DrawEllipse(Pens.Blue, 10, 10, 100, 100);
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Invalidate();
}
}
}
我的问题是。如何从 button_click 事件中触发这些事件?我在网上搜索了很多,发现了很多像“.invalidate()”或“.Refresh()”和“.Update”这样的awnsers。但是我的作业告诉我,我需要使用 .Refresh() 方法来完成,并且绘画需要在 pictureBox 中。
我从 .Refresh() 方法中注意到了什么。是它擦除 pictureBox(绘制 pictureBox 是如何在初始化时创建的)。所以在按钮中关闭 .Refresh 方法对我不起作用。
关于如何从按钮触发绘制事件的任何其他建议?
这应该可以解决问题:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
private void button1_Click(object sender, EventArgs e)
{
using (var g = Graphics.FromImage(pictureBox1.Image))
{
g.DrawEllipse(Pens.Blue, 10, 10, 100, 100);
pictureBox1.Refresh();
}
}
}