2012-07-11 81 views
0

我使用下面的代码将窗体加载到面板中,问题是如果主窗口调整大小,窗体不会调整大小。在面板中调整窗体大小不起作用

frm = new frmShopFloorMonitor(); 
      frm.TopLevel = false; 
      frm.Dock = DockStyle.Fill; 
      frm.AutoSize = true; 
      pnlMain.Controls.Add(frm); 
      pnlMain.Dock = DockStyle.Fill; 
      frm.Show(); 
      frm.BringToFront(); 

有什么建议吗?

区控件是一个在这里找到:http://officeribbon.codeplex.com/

+0

你为什么要在面板中加载表单? 如果表单的内容成为用户控件,那么它可以被加载到面板中,或者如果表单上需要,这不是很好吗? – 2012-07-11 11:38:36

+0

原因是我对mdi父母有一个功能区控制,需要在功能区控件下面出现子标题栏,为此我找到了上面的代码,你有没有你的意思的例子? – Neo 2012-07-11 11:54:52

+0

我不认为在面板中显示表单是未来的正确方法,您是不是面临焦点问题?我建议的解决方案假设你不想要标题栏等。我建议用表单去掉,只使用表单上的控件,这显然不是你想要的... – 2012-07-11 12:04:01

回答

0

相反,我选择做不同的劈,用的MdiParent和子女的关系坚持和做到以下几点:

1)添加菜单条到MDIParent窗体并将其可见值更改为false 2)将MDIChild窗体上的以下内容更改为false:ControlBox,MaximizeBox,MinimizeBox,ShowIcon,ShowInTaskBar 3)将MDIChild窗体框架边框更改为none。

这使我可以创建一个最大化的没有标题栏显示的子窗口!

+2

“我做了另一种方式”并不回答原来的问题。 – 2012-07-11 13:39:55

+0

@HansPassant既没有向后走到目的地,但它仍然让你在那里!如果有人能够解决这个问题,那么问题仍然存在。 – Neo 2012-07-11 14:46:16

0

我有一个图表的对接问题和窗体大小调整。

// The chart was docked at chart.Bottom at start-up. 
private void Form_Resized(object sender, EventArgs e) 
{ 
    Size size = Size; 
    if(size.Width >= 100 && size.Height >= 120) 
    { 
      Size chartsize = new Size(size.Width - 12, size.Height - 115); 
      chart.Size = chartsize; 
    } 
} 

这并没有工作,它该做的方式,但一些尝试之后并插入 chart.Dock = DockStyle.Fill;chart.Dock = DockStyle.Bottom;它的工作。

private void Form_Resized(object sender, EventArgs e) 
{ 
    Size size = Size; 
    if(size.Width >= 100 && size.Height >= 120) 
    { 
      Size chartsize = new Size(size.Width - 12, size.Height - 115); 
      chart.Size = chartsize; 
      chart.Dock = DockStyle.Fill; 
      chart.Dock = DockStyle.Bottom; 
    } 
} 
相关问题