これが私のコードです
Form1
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
tdが表示されたらForm1を閉じたい。
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();
2番目のフォームが表示された後に最初のフォームを閉じる場合は、次のForm.Shown
イベントを使用します。
td.Shown += (o, e) => { this.Close(); }
td.Show();
興味深い可能性のある他のイベントについては、Windowsフォームのイベントの順序を確認してください。もちろん、現在のフォームをすぐに閉じることもできます。
this.Close();
td.Show();
私はこのようなことをしました:
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
this.Hide();
td.Close += (object sender, EventArgs e) =>
{
td.Parent.Close();
};
TicketDetailsがモーダルでない限り、td.show()の後のコードは実行されます。
また、Form1がプロジェクトのスタートアップフォームであると想定しています。その場合は、.closeを使用するとアプリが停止します。
これを試しましたか:
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
Form1.Hide();
これは明らかにForm1を隠します
ありがとう
ポール