我创建了一个Windows窗体应用程序,并且想要在按钮单击上绘制形状。 如何在Button_Click事件上调用Form_Paint?在按钮上绘制形状单击
-2
A
回答
0
下面是一个将每个“形状”作为GraphicsPath存储在类级别List中的快速示例。每个路径都使用窗体的Paint()事件中提供的Graphics绘制。随机矩形添加到列表<>与每个按钮的点击和刷新()被调用针对的形式,迫使它重新绘制本身:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Paint += new PaintEventHandler(Form1_Paint);
}
private Random R = new Random();
private List<System.Drawing.Drawing2D.GraphicsPath> Paths = new List<System.Drawing.Drawing2D.GraphicsPath>();
private void button1_Click(object sender, EventArgs e)
{
Point pt1 = new Point(R.Next(this.Width), R.Next(this.Height));
Point pt2 = new Point(R.Next(this.Width), R.Next(this.Height));
System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();
shape.AddRectangle(new Rectangle(new Point(Math.Min(pt1.X,pt2.X), Math.Min(pt1.Y, pt2.Y)), new Size(Math.Abs(pt2.X - pt1.X), Math.Abs(pt2.Y - pt1.Y))));
Paths.Add(shape);
this.Refresh();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics G = e.Graphics;
foreach (System.Drawing.Drawing2D.GraphicsPath Path in Paths)
{
G.DrawPath(Pens.Black, Path);
}
}
}
0
为了提高甚至用手阅读本SO后的涂料(基本调用invalidate()方法)
SO post: How do I call paint event?
然而,你可能需要有某种形式的内部“drawshape”标志,设置/清除按钮点击查看您的油漆,甚至处理方法中。这个标志将会调用你的绘画事件处理程序来继续绘制你的形状或者根本不绘制你的形状(每次调用表单绘制时)
相关问题
- 1. 如何调用绘制矩形方法在单个按钮上单击绘制不同的形状?
- 2. Java。用按钮单击绘制形状的问题
- 3. 可可/ Objective-C:在按钮上绘制矩形单击
- 4. 故障使用javascript:在按钮绘制形状点击
- 5. 使用按钮绘制形状(Python Tkinter)
- 6. 绘图形状和按钮
- 7. 单击按钮时在QFrame中绘制。
- 8. Java-点击按钮后绘制矩形
- 9. Java - 点击按钮后用鼠标绘制形状
- 10. 绘制形状上的点击事件
- 11. 点击JPanel绘制形状
- 12. 如何在Android中单击按钮时绘制圆形?
- 13. 在按钮上绘图单击 - Visual C++
- 14. 单击时更改按钮形状
- 15. jquery单击按钮更改div形状
- 16. 在UIImageView上绘制形状
- 17. 在FlowDocument上绘制形状
- 18. 在wpf中的viewbox上单击点绘制形状
- 19. Android:在自定义画布上绘制圆形按钮,点击
- 20. 如何在点击按钮上绘制矩形?
- 21. 加载图像,通过单击按钮在其上绘制图形,通过鼠标在其上绘制线条
- 22. 在按钮上绘制矩形单击目标c中的viewcontroller类IOS5
- 23. 可在简单按钮上绘制
- 24. 用按钮绘制矩形
- 25. 按下按钮时在同一画布上绘制多个形状
- 26. 编写ActionListener通过按下按钮来绘制形状
- 27. Matplotlib绘制图形上的形状
- 28. 在JForm上绘制形状java
- 29. 在形状上绘制文本
- 30. 在画布上绘制渐变形状