的格式這裏是我的代碼C#打開一個新的WinForm和關閉創建它
Form1中
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
我想關閉Form1顯示TD的時候。
的格式這裏是我的代碼C#打開一個新的WinForm和關閉創建它
Form1中
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
我想關閉Form1顯示TD的時候。
如果你想之後的第二已經顯示使用Form.Shown
事件關閉第一種形式:
td.Shown += (o, e) => { this.Close(); }
td.Show();
其他事件的可能有趣,請查看order of events in Windows Forms。而當然,它也可能是確定立即關閉當前形式:
this.Close();
td.Show();
我做了這樣的事情:
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
this.Hide();
td.Close += (object sender, EventArgs e) =>
{
td.Parent.Close();
};
如果Form1
是你作爲一個參數傳遞給Application.Run
形式,那麼你不能關閉它,或者你的應用程序將退出。顯示td
時,您可以做的是隱藏表格。
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
// Hide the main form
form1.Hide();
如果Form1
是不是你的應用程序的主要形式,那麼你可以簡單地調用Close()
上form1
。
編輯@comment,
public class Form1 : Form
{
private override OnLoad(object sender, EventArgs e) {
DoWork();
}
public void DoWork() {
// your code
}
}
然後,爲實例。
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
form1.Hide();
// example, maybe you need to call your work method
form1.DoWork();
窗體不是我的主窗體,但用戶可以再次打開窗體,我需要調用Load方法 –
在需要執行此工作的Form1類中創建一個新的公共方法,並且您可以從您的OnLoad和其他形式。 –
只要TicketDetails不是模態,那麼td.show()之後的任何代碼都會運行。
我還假設Form1是您的項目的啓動窗體。如果是這種情況,那麼使用.close會停止你的應用程序。
你嘗試過這樣的:
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
Form1.Hide();
這顯然隱藏Form1中
感謝
保羅
對不起,如果答案與上面的一樣,我不得不在回覆電話的過程中寫下:) – PaulG
你嘗試過用this.close(); – coder