プロジェクトにForm1とForm2があります。 Form2は、Form1の設定を持つ単なるフォームです。 Form1からForm2を開くコマンドは何ですか?また、閉じるためのコマンドは何ですか?
ユーザーとの対話の結果として発生した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();
//To open the form
Form2 form2 = new Form2();
form2.Show();
// And to close
form2.Close();
お役に立てれば
開く場合は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();
}
私はあなたがWindowsフォームについて話していると仮定します:
フォームを表示するには、Show()メソッドを使用します。
Form form2 = new Form();
form2.Show();
フォームを閉じるには、Close()を使用します。
form2.Close();
1行で次のようになります。
(new Form2()).Show();
それが役に立てば幸い。
クリックイベント(または他のイベント)の場合:
Form2 frm2 = new Form2();
frm2.Show();
それぞれ Form.Show() (または Form.ShowDialog() 2番目のフォームをモーダルにする場合)、および Form.Hide() =(または Form.Close() 、close it
の意味に応じて)。
Form2
を モーダルダイアログ として表示する必要がある場合は、Form1
内から以下を実行します。
var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK)
{
// process results here
}
モーダルダイアログは、開いている間フォーカスを保持します。閉じられるまで親ウィンドウ(Form1
)を「バックグラウンドで」設定します。これは設定ウィンドウの非常に一般的な方法です。
これから始めます:
var dlg = new Form2();
dlg.ShowDialog();
Form1 OpenNewForm = new Form1();
OpenNewForm.Show();
「OpenNewForm」はフォームの名前です。 2番目のフォームが開きます。
前のフォームを閉じたい場合:
this.Close();