请,小弟我怎么在一个解决方案里保证一个窗口只出现一次?

请高手指点,我如何在一个解决方案里保证一个窗口只出现一次??
请高手指点啊:
我在一个解决方案里有一个主窗口FormA,在FormA里有一个按钮调出子窗口FormB,现在的问题是每点一次按钮就会弹出一个FormB,我该怎么样加个判断,让整个方案运行过程中,只保留一个FormB呢,当存在一个的时候再点击按钮就不要弹出了,或者再点击的时候自动定位到这个已经打开的FormB呢??请高手指点啊!!

------解决方案--------------------
try

FormB fb = null;
private void button1_Click(object sender, EventArgs e)
{
if (fb == null || fb.IsDisposed)
{
fb = new FormB();
fb.Show();
}
else
{
fb.Activate();
}
}