看板 C_Sharp 關於我們 聯絡資訊
※ 引述《leo600498 (我愛大胸部)》之銘言: : ※ 引述《leo600498 (我愛大胸部)》之銘言: : : 大家好, : : 小弟是初學者, : : 最近在寫簡單的form時碰到了一個問題, : : 就是我寫了一個pictureBox1_Click的事件, : : 讓user只要點一下畫面就會從頭開始run這個form, : : 但是完全沒有頭緒要怎麼做@@ : : 是refresh嗎? : : 還是該用timer? : 我後來在form 1的 click event裡寫了下面的程式碼: : Form1 form2 = new Form1(); : form2.Visible = true; : this.Close(); : 本來的用意是想要重開一個新的form之後, : 把原來的form關掉, : 但是這樣寫的話, : 就會把所有的from都關掉了。 : 請問一下大家, : 這樣的寫法就是重新run這個form嗎? : 那有沒有方法可以在開啟新的form的同時關掉from1? : 謝謝大家。 你在程式原本秀出的form1建立的form2是屬於form1的子物件 而form1是你程式執行緒的最基底的form如果你把它關閉 當然會把子物件跟整個程式都關閉 Form.Close();請參考MSDN 他是把物件記憶體釋放 所以連帶子物件form2也會關閉 如果要達到你想要的效果可以試試看this.Hide(); 不過這個方法不好 因為這樣原本你用不到的form1記憶體還是會佔用 你可以試試看Application.Restart(); 或是修改專案的程式進入點建立一個form3作為執行緒的啟始Form 在form1建立一個全域變數 public Form3 form; (宣告就好不要建構) 接著把Click事件改成 form.ReStart();this.Close(); 然後form3的建構式當中加入 public form3() { this.hide(); ReStart(); } form3加入一個方法 public void ReStart() { Form1 form1 = new Form1(); form1.form = this; form1.Show(); } ※ 編輯: jack810606 來自: 61.228.74.45 (09/16 09:24)