Winform子窗口最大化后和主窗口重叠问题

Doane 2013-04-17 09:27:33
MDI子窗口最大化后,再点击MDI父窗口的还原,两者的标题栏就合在一起了,然后子窗口就没办法还原了,怎么办?
关键是出现这种情况后,会导致我某些DGV单元格无法编辑。上图:
初始界面:

子窗口最大化后的界面:

父窗口还原后的最终界面:


打开子窗口的代码:
private void buttonItem11_Click(object sender, EventArgs e)
{
foreach (Form f in this.MdiChildren)
{
if (f is WL_SaleCost.SC_SalesQuotation)
{
f.Activate();
SetParent((int)f.Handle, (int)this.Handle);
return;
}
}
WL.WL_SaleCost.SC_SalesQuotation WF = new WL_SaleCost.SC_SalesQuotation();
//权限
if (PropertyClass.IsAdmin != 1)
{
string qx = cUse.UserAssignRight(WF);
if (qx == "没有权限")
{
MessageBoxEx.Show("没有权限,请联系系统管理员!", "软件提示");
return;
}
}
//open form
WF.MdiParent = this;
WF.Show();
SetParent((int)WF.Handle, (int)this.Handle);
...全文
439 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamxia8 2013-08-28
  • 打赏
  • 举报
回复
不会吧,这个问题到现在还没有解决啊
逍遥jc 2013-04-21
  • 打赏
  • 举报
回复
引用 2 楼 ydg1024 的回复:
引用 1 楼 gxingmin 的回复:设置MdiParent属性了,还要设置SetParent干嘛?去掉SetParent((int)WF.Handle,(int)this.Handle);这行试试 我MDI主窗口上放了很多控件,如果不加这句的话,打开的子窗口就被这些控件挡住了
主窗体上还是只放工具栏啊。菜单栏啊什么的好。其他控件都放在子窗体上。
夜轻风 2013-04-18
  • 打赏
  • 举报
回复
父窗体最大化后,在父窗体还原之前先对子窗体还原,等父窗体还原之后再对子窗体最大化
lechenging 2013-04-18
  • 打赏
  • 举报
回复
那你为什么不隐藏子窗体的标题呢,不让其在父窗体中显示
wumin940590725 2013-04-18
  • 打赏
  • 举报
回复
你使用子窗体的时候直接将父窗口隐藏。然后要用到父窗体的时候在调用一下。 用hide()隐藏,用show()调用。 反正你要操作子窗体的时候不需要操作主窗体不是吗
iceMung 2013-04-18
  • 打赏
  • 举报
回复
你的问题不就是最大化之后会BUG嘛,不让他最大化不就完了!看你纠结的
Doane 2013-04-18
  • 打赏
  • 举报
回复
Doane 2013-04-17
  • 打赏
  • 举报
回复
引用 5 楼 iceMung 的回复:
如果你不想子窗口覆盖到父窗口,就把子窗口的MaximumSize设成父窗口的Height*N%不就可以了吗? 在属性里设~
试过了,没有解决我的问题,标题栏还是合并了,并且还是造成了我的DGV的单元格无法输入。
iceMung 2013-04-17
  • 打赏
  • 举报
回复
如果你不想子窗口覆盖到父窗口,就把子窗口的MaximumSize设成父窗口的Height*N%不就可以了吗? 在属性里设~
Doane 2013-04-17
  • 打赏
  • 举报
回复
引用 3 楼 iceMung 的回复:
MaximumSize?
怎么设?如果将Height固定死,会不会因为客户端使用的电脑(分辨率)不同而出现其他问题?
iceMung 2013-04-17
  • 打赏
  • 举报
回复
MaximumSize?
Doane 2013-04-17
  • 打赏
  • 举报
回复
引用 1 楼 gxingmin 的回复:
设置MdiParent属性了,还要设置SetParent干嘛?去掉SetParent((int)WF.Handle,(int)this.Handle);这行试试
我MDI主窗口上放了很多控件,如果不加这句的话,打开的子窗口就被这些控件挡住了
gxingmin 2013-04-17
  • 打赏
  • 举报
回复
设置MdiParent属性了,还要设置SetParent干嘛?去掉SetParent((int)WF.Handle,(int)this.Handle);这行试试

679

社区成员

发帖
与我相关
我的任务
社区描述
智能路由器通常具有独立的操作系统,包括OpenWRT、eCos、VxWorks等,可以由用户自行安装各种应用,实现网络和设备的智能化管理。
linuxpython 技术论坛(原bbs)
社区管理员
  • 智能路由器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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