请问Form为什么不显示啊!

wenchuan408 2014-09-26 03:36:03
大家好,请协助!
我现在有3个Form: Form1, Form2(含Panel控件) ,Form3
我现在在Form3 的窗口下面点击Button,执行下面的代码,想显示出Form1填充在Form2(含Panel控件)的效果,同时关闭当前
窗口Form3.


Form2 form2 = new Form2();
form2.panel1.Controls.Clear();
Form1 refform = new Form1();
refform.Dock = System.Windows.Forms.DockStyle.Fill;
refform.TopLevel = false;
refform.FormBorderStyle = FormBorderStyle.None;
form2.panel1.Controls.Add(refform);
System.Threading.Thread.Sleep(500);
refform.Show();
form2.Show();
this.Close();
执行下面的代码后,Form2(含Panel控件)正常显示,但是其Panel控件里根本没有填充Form1窗体.不知怎么回事??

麻烦大家帮忙看一下!谢谢!
...全文
543 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenchuan408 2014-09-26
  • 打赏
  • 举报
回复
老大 如果不要New, Form委托具体怎么弄啊,谢谢!
於黾 2014-09-26
  • 打赏
  • 举报
回复
最好的办法,是你的form3以模式窗体的形式打开,先阻塞住form2 等form3关闭的时候,继续执行form2里的代码,然后在form2中把form1加进来 而不是在其他窗体里操作form2
wenchuan408 2014-09-26
  • 打赏
  • 举报
回复
我也不知道那个是主窗体啊! 反正不管Form1还是Form3显示,其都填充在Form2的Panel控件里面的
於黾 2014-09-26
  • 打赏
  • 举报
回复
你程序默认打开的那个窗体就是主窗体 根据你的描述,应该form2是主窗体 然后在form2中开form3,又想在form3中操作form2 你需要用委托,在form3中直接操作form2的实例,而不是new一个出来
wenchuan408 2014-09-26
  • 打赏
  • 举报
回复
你又new一个是要闹哪样?? =>老大 你太幽默了! 我说明一下! 我现在有3个Form: Form1, Form2(含menuStrip控件,Panel控件) ,Form3 程序运行时,进入Form2=>通过其menuStrip控件=>打开Form3(Form3是填充在Form2的Panel控件里面的) 现在想通过在Form3 里面的按钮,回到Form1(但其必须填充在Form2的Panel控件里面的),同时Form3关闭 我也不知道那个是主窗体啊! 反正不管Form1还是Form2显示,其都填充在Form2的Panel控件里面的
  • 打赏
  • 举报
回复
refform.Show(form2);
於黾 2014-09-26
  • 打赏
  • 举报
回复
如果1,2,3都不是主窗体,就好办了 你试试先show form2,再show form1 form2还没显示,你把1往里放,有什么效果
於黾 2014-09-26
  • 打赏
  • 举报
回复
我想问,你主窗体到底是哪个 form3不是主窗体吧? 否则close掉,整个工程不关闭了? 而如果form2是主窗体,你又new一个是要闹哪样 如果form1是主窗体,你能把主窗体放到子窗体里面去??
xdashewan 2014-09-26
  • 打赏
  • 举报
回复
设置refform为非顶层窗体 refform.TopLevel = false;
卧_槽 2014-09-26
  • 打赏
  • 举报
回复
Form1好像少设置一个属性,好多年前写过,不是很记得了。

110,534

社区成员

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

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

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