有关父窗体中控制子窗体问题

zjy1985cool 2009-03-13 05:01:13
在父窗体中 已经含有的窗体不能再次打开怎么写代码???

if (HaveOpen(cF.Parent.Name,cF.Name))
{
cF.MdiParent = this;
cF.Show();
panel2.Controls.Clear();
panel2.Controls.Add(cF);
cF.BringToFront();
}
private bool HaveOpen(mainForm strForm, string midName)
{

bool bReturn = true;
for (int i = 0; i < strForm.MdiChildren.Length; i++)
{
if (strForm.MdiChildren[i].Text == midName)
{
strForm.MdiChildren[i].BringToFront();
bReturn = false;
break;
}
}
return bReturn;
}

...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjy1985cool 2009-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhangchong_1018 的回复:]
frmPurvey frmp = new frmPurvey();//创建要打开的窗体对象
bool isOpen = true;
foreach (Form frm in this.MdiChildren)//遍历已打开的MDI
{
if (frm.Name == frmp.Name)
{
frmp.Activate();//赋予焦点
frmp.WindowState = FormWindowState.Maximized;//设置窗体最大化
isOpen = false;

[/Quote]
朋友我怎么执行你这段代买 就没跳出过循环啊 没次都执行关闭以打开的那段代码啊
jwdream2008 2009-03-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhangchong_1018 的回复:]
frmPurvey frmp = new frmPurvey();//创建要打开的窗体对象
bool isOpen = true;
foreach (Form frm in this.MdiChildren)//遍历已打开的MDI
{
if (frm.Name == frmp.Name)
{
frmp.Activate();//赋予焦点
frmp.WindowState = FormWindowState.Maximized;//设置窗体最大化
isOpen = false;

[/Quote]
楼上的可以!
杰克CZ 2009-03-13
  • 打赏
  • 举报
回复
frmPurvey frmp = new frmPurvey();//创建要打开的窗体对象
bool isOpen = true;
foreach (Form frm in this.MdiChildren)//遍历已打开的MDI
{
if (frm.Name == frmp.Name)
{
frmp.Activate();//赋予焦点
frmp.WindowState = FormWindowState.Maximized;//设置窗体最大化
isOpen = false;
break;
}
}
if (isOpen)//如果没有找到相同窗体则打开新窗体
{
frmp.MdiParent = this;//设置父窗体
frmp.Show();
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧