怎样检测多文档应用中的某子窗口已经打开?并且点击子窗体关闭后,再打开子窗体不出现同样的子窗体 问题点数:50、回复次数:3Top
1 楼dy_2000_abc(芝麻开门)回复于 2003-01-02 17:29:01 得分 40
1 假设某子窗体的类名是Form2
bool HasShow=false;
foreach (Form form in this.MdiChildren)
{
if (form.GetType()==typeof(Form2))
{
HasShow=true;
form.BringToFront();
break;
}
}
if (!HasShow)
{
Form2 frm =new Form2();
frm.MdiParent=this;
frm.Show();
}
2 使用静态变量
public class Form2:Form
{
private System.ComponentModel.Container components = null;
public static int count;
public Form2()
{
InitializeComponent();
count++;
}
...
}
在打开子窗体时判断Form2.count>0来决定接下来的动作。Top
2 楼luolie(罗列)回复于 2003-01-02 17:33:54 得分 10
ReadXMLForm childForm = null; //ReadXMLForm为子窗口的name
foreach(Form f in this.MdiChildren)
{
if(f is ReadXMLForm)
{
childForm = (ReadXMLForm) f;
break;
}
}
if( childForm != null)
{
childForm.Show();
childForm.Focus();
childForm.BringToFront();
}
else
{
RunInforForm runform = new RunInforForm();
//runform.MdiParent = this;
runform.Show();
runform.Refresh();
childForm = new ReadXMLForm();
childForm.Show();
childForm.MdiParent = this;
childForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;//最大化子窗口
childForm.Focus();
this.Focus();
//runform.Hide();
}