winform主窗体嵌入多个子窗体

xiaocui19870801 2011-01-20 10:28:03
在一个主窗体中设置一个panel,在panel中嵌入多个form窗体,现在我是new了很多个form窗体,分别让它们隐藏和显示,现在想找个解决办法,只new一个form窗体,然后根据里面不同的对象信息,显示和隐藏,就像delphi里面的TList和TStringList这种的在c#的winform中有那个可以实现这个功能?
...全文
962 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-01-20
  • 打赏
  • 举报
回复
From1 f=new From1;
f.MdiParent=this;
f.Parent=panel1;
f.Show();
显示最前面
Panel1.BringToFront();
form1.BringToFront();
shighui 2011-01-20
  • 打赏
  • 举报
回复
这个当然可以了,设置好控件的显隐属性就可了。
jiangjun110120 2011-01-20
  • 打赏
  • 举报
回复
用多文档窗口实现:
1\首先那一个from做父窗口 (及窗口的IsMdiContainer属性设为true )
2\在new子窗口时加frmChild.MdiParent = this;
3\在点功能时判断是否窗口已打开
private bool IsOpenOnlyFrm(string frmName)
{

bool isTrue = false;
//遍历主窗口上的所有窗体
for (int i = 0; i < this.MdiChildren.Length; i++)
{
//如果所点的窗口被打开则重新激活
if (this.MdiChildren[i].Name.ToString() == frmName)
{
//_windowLoad[this.MdiChildren[i].Name] = true;

this.MdiChildren[i].Activate();
this.MdiChildren[i].WindowState = FormWindowState.Maximized;
isTrue = true;
break;
}

}
return isTrue;
}
babyblueii 2011-01-20
  • 打赏
  • 举报
回复
为什么不用 mdi 实现?
Flavoring 2011-01-20
  • 打赏
  • 举报
回复
你把from窗口设一个子父窗口,就可以实现你的功能了
bdmh 2011-01-20
  • 打赏
  • 举报
回复
直接 BringToFront
xiaocui19870801 2011-01-20
  • 打赏
  • 举报
回复
不知道我说的是不是清楚,如果哪位解决过类似的问题,而觉得我的描述不是很清楚的话,可以说一声,我再好好给您描述一下!!
xiaocui19870801 2011-01-20
  • 打赏
  • 举报
回复
回复jiangjun:


你好!我这个原界面和嵌入后的界面都不一样(包括颜色,窗体显示3D,并且主窗体中有好几个panel用做其他用),如果用这个mdi会改变我的初始化的布局。我想问一下有没有类似于delphi里面的这一段
{panel嵌入窗体后,重新再嵌入新的窗体,会将原来已经嵌入的窗体隐藏,新的窗体重新创建。这种方法不是很好,我想用一个函数来判断:如果新打开的窗体已经在panel控件嵌入(即已经存在),就不重复创建该窗体,再嵌入。而是直接将该窗体显示。该怎样实现?


可以将form放到一个TList对像中,


//TListForm:=TStringList.create;
index:integer;
index:=TListForm.IndexOf( 'FORMNAME ');
if index <0 then
begin
BaseReportForm:=TBaseReportForm.Create(nil);
BaseReportForm.Parent:=tabReport;
BaseReportForm.BorderStyle:=bsNone;
BaseReportForm.Align:=alClient;
BaseReportForm.Show;
TListForm.add( 'FORMNAME ');
end
else
begin
TForm(TListForm.objects(index)).show;
end;
}
同样的方法,在c#中有没有对应的可以获得form的对象,并且对象可以进行上面代码中的操作。

110,534

社区成员

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

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

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