Mdi子窗口不显示

薛勇 2017-08-12 12:14:24
FormTelParam formTelParam = new FormTelParam(sKey, listSid.ElementAt(i).Key, listSid.ElementAt(i).Value);
formTelParam.MdiParent = mainparent;
formTelParam.Text = Global.dtSensorType.Select("id=" + listSid.ElementAt(i).Key)[0]["name"].ToString();
formTelParam.Show();

注释掉“formTelParam.MdiParent = mainparent;”这一行,子窗口可以显示。
mainparent的属性:
formTelParam的属性:
显示区域并无其他控件或窗口挡住:

新建一个没有任何内容的空窗体,如果加了MdiParent属性,也显示不出来。
...全文
437 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛勇 2017-08-14
  • 打赏
  • 举报
回复
忘了说了,我用的weifenluo的MDI控件
薛勇 2017-08-14
  • 打赏
  • 举报
回复
@以专业开发人员为伍 ,我觉得我的程序用mdi挺好的,因为用户可以自己决定关闭某个子窗口。
薛勇 2017-08-14
  • 打赏
  • 举报
回复
已经搞定了,是我疏忽,少加了一行代码

mainparent.dockPanel1.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.SystemMdi;

FormTelParam formTelParam = new FormTelParam("", 1, null);

formTelParam.MdiParent = mainparent;
formTelParam.Text = "";

formTelParam.Show();


谢谢各位sp1234,xuzuning
  • 打赏
  • 举报
回复
从你贴出的图片看,你放入了遮挡的Panel,想去“布局?”。 一个很好布局的窗体,它使用 usercontrol 来组织架构。而不是用 Mdi 窗口。
  • 打赏
  • 举报
回复
先要搞明白 Mdi 父窗口是什么样子的,不要盲目用 Mdi。从你贴出的图片看,根本不是 Mdi。
浪子-无悔 2017-08-14
  • 打赏
  • 举报
回复
引用 2 楼 xueyong0403 的回复:
不要说绝对可以的这句话,Parent肯定哪里有问题了,所以加了formTelParam.MdiParent = mainparent;这句代码,就显示不出来了。我只是想知道,Parent一般哪里出了问题,会影响到子窗口无法显示。mainparent就是父窗口。
你这种赋值子窗体的父窗体方式,真是很少见到呢。。。你看2楼版主说的就是很正确的,一般都是这么用的!
xuzuning 2017-08-14
  • 打赏
  • 举报
回复
mainparent 在哪里?可见吗? 在 MDI 应用中,主窗体是不能用名字访问到的
薛勇 2017-08-14
  • 打赏
  • 举报
回复
不要说绝对可以的这句话,Parent肯定哪里有问题了,所以加了formTelParam.MdiParent = mainparent;这句代码,就显示不出来了。我只是想知道,Parent一般哪里出了问题,会影响到子窗口无法显示。mainparent就是父窗口。
  • 打赏
  • 举报
回复
新建2个窗口Form1,Form2,类似这样:

private void Form1_Load(object sender, EventArgs e)
        {
            this.IsMdiContainer = true;
            Form2 frm = new Form2();
            frm.MdiParent = this;
            frm.Show();
        }
是绝对可以的。

111,095

社区成员

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

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

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