C#在panel中的窗体关闭问题

fzrz701 2016-11-26 11:56:00
情况是这样。。
程序灰色部分是panel中的一个窗体,现在实现的是点击“住户物业信息查询”弹出一个窗体,标题是Normalssearch
我用的方法是在button点击事件中新建一个窗体在附加进panel中:
Normalsearch frm = Normalsearch.GetForm(); //用的是单例窗口,Get函数用来获取窗口
frm.TopLevel = false;
palWindows.Controls.Add(frm);
frm.Show();

接下来我想实现的是点击新增单位,在panel中弹出另一个窗口HouseManager,并且如果之前panel中有窗口就关闭,没有就直接打开

现在的情况是点击之后另一个窗体HouseManager是生成了,但是藏在了Normalssearch的下面,当我再次点击“住户物业信息查询”反而之前藏在下面的HouseManager浮上来了,Normalssearch又回到了底层。请问我该怎么正常实现功能?

梳理一下:住户物业信息查询 对应 Normalssearch
新增单位 对应 HouseManager

在此先谢谢大家
ps:
我的思路是在panel中既然创建了窗口作为控件,那么应该在panel的control中能找到这个窗口,并且对窗口进行操作关闭或者其他类似的操作,网上查不到能解决的资料。不知道这个思路对不对。我所查到的窗体在panel中是作为控件存在的,这个窗体是否还有句柄?能不能通过句柄解决问题?
...全文
960 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoulRed 2016-11-27
  • 打赏
  • 举报
回复
注意重叠的控件要Z-ORDER来指定显示的顺序,你可以谷歌一下
fzrz701 2016-11-27
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
Applcation.OpenForms["窗体名"].Close();
但是功能增加了以后窗体中可能存在的窗体就不是固定的这两个,我的情况是只知道panel中有一个或没有窗体,但是具体是哪个窗体是无法得知的。
threenewbee 2016-11-27
  • 打赏
  • 举报
回复 1
Applcation.OpenForms["窗体名"].Close();
xuzuning 2016-11-27
  • 打赏
  • 举报
回复
遍历 palWindows.Controls,逐个关闭就是了

111,098

社区成员

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

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

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