2

こんにちは、c# で簡単なアクティビティを行っています。ボタンを使用して新しいフォーム2を開きたいのですが、そのボタンを押すとフォーム1が自動的に閉じます。私のコードは次のとおりです。

        Form2 form2 = new Form2();
        form2.ShowDialog();
        this.Close(); 

今、フォーム1を自動的に閉じるためにどの方法を使用するのかわかりません。ありがとうございました..

4

2 に答える 2

4

コード制御が で停止するため、機能しませんform2.ShowDialog();

非モーダルな方法で form2 を表示する必要があります。

Form2 form2 = new Form2();
form2.Show();
this.Close(); 

または、フォームを非表示にすることで偽造できると思います。

Form2 form2 = new Form2();
this.Visible = false;
form2.Show();
this.Visible = true;

両方のバージョンを試して、どちらが状況に適しているかを確認してください。呼び出すShowDialog();と、フォームがモーダルとして表示され、ユーザーのマウス/キーボード入力はすべて、フォームを閉じるまで form2 に制限されます。

編集: Form2 はメンバー変数として宣言する必要があります。ボタン イベントで宣言すると範囲外になります。

Form2 form2 = new Form2();
private void btnOK_Click(object sender, EventArgs e)
{
this.Visible = false;
form2.Show();
this.Visible = true;
}
于 2012-11-12T05:28:32.100 に答える
3

this.Close();useを使用する代わりに、 give this.Hide()の on formclose イベントを使用します。Form2form1.Show()

詳細については、このリンクを参照してください(以前にこの質問をしました)。

于 2012-11-12T05:30:05.220 に答える