MDI应用中的单实例(singleton)窗口-.Net技术-3P代码网
繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> MDI应用中的单实例(singleton)窗口

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

2007-08-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:下面的代码片断假设你的多文档应用程序中包含一个toolbar。当你点击toolBarButton1 按钮时,将会创建并显示一个 Patients 子窗口。下面的代码在单机事件时发生。 private void toolBar1_ButtonClick(object send...

下面的代码片断假设你的多文档应用程序中包含一个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();

}

}

}

}

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

责任编辑:admin
相关文章