2007/02/21(Wed) 17:46:32 編集(投稿者)
仮にthisがメインウィンドウであるならば閉じた時点でアプリケーション自体が終了してしまうので、
メインウィンドウを隠してサブウィンドウをモーダル表示するか、
ApplicationContextを使用するかのどちらかになると思います。
前者の方法は、
class MainForm
{
private SubForm subForm;
public MainForm()
{
InitializeComponent();
//サブウィンドウを初期化
subForm = new SubForm();
//サブウィンドウが閉じられたときのイベントハンドラを登録
subForm.OnClosed += subForm_OnClosed();
}
private void subForm_OnClosed(object sender, EventArgs e)
{
//サブウィンドウが閉じられたら再び表示
this.Show();
}
//サブウィンドウに切り替え
private void OpenSubForm()
{
//メインウィンドウを隠す
this.Hide();
//サブウィンドウをモーダル表示
subForm.ShowDialog();
}
}
class SubForm()
{
public SubForm()
{
InitializeComponent();
this.Load += this_Load;
}
private void this_Load(object sender,EventArgs e)
{
this.Activate();
}
}
のようにします。
後者の方法は自分で調べてください。