を作成したフォームを閉じると、ここに私のコードですC#の新しいWinフォームを開いて、それを
をForm1
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
私はTDが表示されたときに、Form1を閉じたいです。
を作成したフォームを閉じると、ここに私のコードですC#の新しいWinフォームを開いて、それを
をForm1
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
私はTDが表示されたときに、Form1を閉じたいです。
を興味深いことに、order of events in Windows Formsをチェックしてください。そしてもちろん、また、すぐに現在のフォームを閉じるためにOKかもしれません:
this.Close();
td.Show();
私はこのような何かやった:その可能性のある他のイベントのために
td.Shown += (o, e) => { this.Close(); }
td.Show();
:あなたは秒後に最初のフォームを閉じたい場合はForm.Shown
イベントの使用を表示していた
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
は、アプリケーションのメインフォームではありません場合は、単にform1
にClose()
を呼び出すことができます。
編集@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