MDI应用中的单实例(singleton)窗口

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

下面的代码片断假设你的多文档应用程序中包含一个toolbar。当你点击toolBarButton1 按钮时,将会创建并显示一个 Patients 子窗口。下面的代码在单机事件时发生。

private void toolBar1_ButtonClick(object sender,

System.Windows.Forms.ToolBarButtonClickEventArgs e)

{

// a flag to store if the child form is opened or not

bool found = false;

if (e.Button == toolBarButton1)

{

// get all of the MDI children in an array

Form[] charr = this.MdiChildren;

if (charr.Length == 0) // no child form is opened

{

Patients myPatients = new Patients();

myPatients.MdiParent = this;

// The StartPosition property is essential

// for the location property to work

myPatients.StartPosition = FormStartPosition.Manual;

myPatients.Location = new Point(0,0);

myPatients.Show();

}

else // child forms are opened

{

foreach (Form chform in charr)

{

if (chform.Name == "Patients")

// one instance of the form is already opened

{

chform.Activate();

found = true;

break; // exit loop

}

else

found = false; // make sure flag is set to

// false if the form is not found

}

if (found == false)

{

Patients myPatients = new Patients();

myPatients.MdiParent = this;

// The StartPosition property is essential

// for the location property to work

myPatients.StartPosition = FormStartPosition.Manual;

myPatients.Location = new Point(0,0);

myPatients.Show();

}

}

}

}

这样,就实现了一个单窗口实例的解决方案。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航