我有一個小的初學者問題,我有一個buttonclick事件,我希望事件在form1_paint中初始化繪畫事件。我有一個班級Oversteekplaats有兩個繪畫事件,一個叫teken1,另一個叫teken2。在Form1_paint中,teken1已經初始化。通過一個布爾值,當你點擊Button1時,它會被改變,我想讓它重繪form1_paint。這個按鈕點擊事件會做它需要做的事嗎?
代碼:
public Form1()
{
InitializeComponent();
// Opdracht 1
rood = new FietsLamp(Color.Red, 10, 10, 60);
oranje = new VoetgangerLamp(Color.Orange, 120, 10, 60);
rood.Status = LampStatus.Aan;
oranje.Status = LampStatus.Aan;
// Opdracht 2
stoplicht = new Stoplicht(10, 120, 130, 280);
// Opdracht 3
voetgangerlicht = new VoetgangerStoplicht(150, 120, 130, 195);
fietslicht = new FietsStoplicht(290, 120, 130, 195);
// Opdracht 5 (teken oversteekplaats en zebrapad voor voetganger)
oversteekplaats1 = new Oversteekplaats(650, 10, 200, 200);
oversteekplaats2 = new Oversteekplaats(650, 210, 200, 200);
oversteekplaats3 = new Oversteekplaats(650, 410, 200, 200);
oversteekplaats4 = new Oversteekplaats(450, 210, 200, 200);
oversteekplaats5 = new Oversteekplaats(850, 210, 200, 200);
}
private void button1_Click(object sender, EventArgs e)
{
if (voetganger == false)
{
voetganger = true;
}
if (voetganger == true)
{
voetganger = false;
}
}
public void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Opdracht 1 graphics
rood.Teken(e.Graphics);
oranje.Teken(e.Graphics);
// Opdracht 2 graphics
stoplicht.Teken(e.Graphics);
// Opdracht 3 graphics
voetgangerlicht.Teken(e.Graphics);
fietslicht.Teken(e.Graphics);
// Opdracht 5 graphics
oversteekplaats1.Teken1(e.Graphics);
oversteekplaats2.Teken1(e.Graphics);
oversteekplaats3.Teken1(e.Graphics);
oversteekplaats4.Teken1(e.Graphics);
oversteekplaats5.Teken1(e.Graphics);
if (voetganger == true)
{
oversteekplaats4.Teken2(e.Graphics, 120);
}
}
那麼,你有沒有嘗試運行這段代碼,看看它是否你想要做什麼? – millimoose
所有按鈕點擊都會翻轉布爾值 – Jonesopolis
使用'Form1.Invalidate()'重新繪製。我認爲這就是你想要的。 – MahanGM