簡單例子:在表單上放置兩個完全一樣并重疊的Panel控制元件,Panel1里面有一PictureBox控制元件,開始顯示Panel2,Panel1不顯示,按下button按鈕,在PictureBox上繪圖。代碼如下:
問題:需要button按兩次才能顯示所畫的線,為什么按下button不能顯示啊?
private void button1_Click(object sender, EventArgs e)
{
panel2.Visible = false;
panel1.Visible = true;
//panel1.BringToFront();
Graphics g = pictureBox1.CreateGraphics();
Pen p = new Pen(Color.Red, 1);
g.DrawLine(p, 10, 50, 200, 100);
p.Dispose();
g.Dispose();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = pictureBox1.CreateGraphics();
Pen p = new Pen(Color.Red, 1);
g.DrawLine(p, 10, 50, 200, 100);
p.Dispose();
g.Dispose();
}
uj5u.com熱心網友回復:
為啥要CreateGraphics呢,你創建的物件過了作用域就會失效,繪制的內容就沒了啊,又不是存圖片。不知道看了那本垃圾教材。
界面的繪圖用Paint 事件中的 PaintEventArgs的 Graphics,重繪的時候呼叫控制元件的 invalid
uj5u.com熱心網友回復:
自己解決了。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/172905.html
標籤:C#
