2004年08月22日

 

有人问到以下问题:
在MDI中运行多个FORM1,FORM2,FORM3,如果在FORM2打开的状态下再次点击打开FORM2的菜单,如何控制不再打开一个新的FORM2,而是激活已经打开的FORM2.

如果窗口在Show后不再改变标题(大多数情况如此),可以通过判断窗口标题来实现,建立一个struct,包括一个获取MDI父窗口是否有窗口标题为指定字符串的子窗口的方法ExistWin和至少一个获取窗口标题的方法WinCaption,
代码如下:


在子窗口的构造函数中写入如下代码

this.Text = ChildWinManagement.WinCaption(…)

在父窗口中打开子窗口:

string caption = ChildWinManagement.WinCaption(…)

if(! ChildWinManagement.ExistWin(this,caption))
{
 //打开子窗口
}

2004年5月24日 7:52