問題
切換Form時,通過 show(Form);打開新窗體;再通過 this.Form.Close();關閉窗體,但是切換超出10次後,就會異常報錯。報錯提示:FormStackMaxCount exceed:10
解決
利用Show的回調關閉窗體this.Show(b,(obj,args)=>{this.Close();//回調事件在b關閉後觸發});
例如:
窗體a中寫代碼跳轉b,this.Form.Show(b,(obj,args)=>{this.Close();//回調事件在b關閉後觸發,this指a窗體});
窗體b中寫代碼跳轉c,this.Form.Show(c,(obj,args)=>{this.Close();//回調事件在c關閉後觸發,this指b窗體});
c頁面中執行this.Close(), c 這樣從c關閉時會執行回調中的方法關閉b,關閉a的
補充
窗體a跳轉窗體b,關閉窗體b刷新窗體a也可以通過Show的回調事件實現,例如:
a窗體中代碼寫
this.Form.Show(b,(obj,args)=>{
textbox1.Text=b.x;//將窗體b的參數x賦值給窗體a中textbox1的text });