web-dev-qa-db-ja.com

2番目のフォームを開く方法は?

プロジェクトにForm1とForm2があります。 Form2は、Form1の設定を持つ単なるフォームです。 Form1からForm2を開くコマンドは何ですか?また、閉じるためのコマンドは何ですか?

27
Nasgharet

ユーザーとの対話の結果として発生したForm1でeventを処理する必要があります。たとえば、ユーザーが設定フォーム(Form2)を表示するためにクリックする「設定」ボタンがある場合、そのボタンのClickイベントを処理する必要があります。

private void settingsButton_Click(Object sender, EventArgs e)
{
    // Create a new instance of the Form2 class
    Form2 settingsForm = new Form2();

    // Show the settings form
    settingsForm.Show();
}

Show method に加えて、 ShowDialog method を使用することもできます。違いは、後者はフォームをmodal dialogとして表示することです。つまり、ユーザーはモーダルを閉じるまでアプリケーションの他のフォームと対話できません。形。これは、メッセージボックスが機能するのと同じ方法です。 ShowDialogメソッドは、フォームが閉じられた方法を示す値も返します。


ユーザーが(たとえば、タイトルバーの[X]をクリックして)設定フォームを閉じると、Windowsが自動的に閉じます。

ユーザーが閉じることを要求する前に自分で閉じたい場合は、フォームの Closeメソッド を呼び出すことができます。

this.Close();
50
Cody Gray
//To open the form

Form2 form2 = new Form2();

form2.Show();
// And to close
form2.Close();

お役に立てれば

8
cush

開く場合はForm2モーダル(Form2が開いている間はForm1をクリックできないことを意味します)、これを行うことができます:

using (Form2 f2 = new Form2()) 
{
    f2.ShowDialog(this);
}

非モーダルでForm2を開きたい場合(Form2が開いている間でもForm1をクリックできます)、次のようにForm2へのフォームレベルの参照を作成できます。

private Form2 _f2;

public void openForm2()
{
    _f2 = new Form2();
    _f2.Show(this); // the "this" is important, as this will keep Form2 open above 
                    // Form1.
}

public void closeForm2()
{
    _f2.Close();
    _f2.Dispose();
}
6
MusiGenesis

私はあなたがWindowsフォームについて話していると仮定します:

フォームを表示するには、Show()メソッドを使用します。

Form form2 = new Form();
form2.Show();

フォームを閉じるには、Close()を使用します。

form2.Close();

1行で次のようになります。

(new Form2()).Show();

それが役に立てば幸い。

3
user4227915

クリックイベント(または他のイベント)の場合:

Form2 frm2 = new Form2();
frm2.Show();
2
Aykut Çevik

それぞれ Form.Show() (または Form.ShowDialog() 2番目のフォームをモーダルにする場合)、および Form.Hide() =(または Form.Close()close itの意味に応じて)。

2

Form2モーダルダイアログ として表示する必要がある場合は、Form1内から以下を実行します。

var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK) 
{
    // process results here
}

モーダルダイアログは、開いている間フォーカスを保持します。閉じられるまで親ウィンドウ(Form1)を「バックグラウンドで」設定します。これは設定ウィンドウの非常に一般的な方法です。

1
Sergi Papaseit

これから始めます:

var dlg = new Form2();
dlg.ShowDialog();
0
Felice Pollano
Form1 OpenNewForm = new Form1();
OpenNewForm.Show();

「OpenNewForm」はフォームの名前です。 2番目のフォームが開きます。

前のフォームを閉じたい場合:

this.Close();
0
Josue Martinez