我創建了一個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. 在畫布上繪製漸變形狀