none
panel的resize变化,panel中的窗体如何自动调整? RRS feed

  • 问题

  • panel设置为:跟随主窗体变化大小,panel中的窗体默认设置为:最大化。

    遇到的问题是:当panel的大小发生变化,panel下的窗体没有变化。应该怎样实现这个?谢谢!

    代码:

                Form childform = new Form();
                childform.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                childform.Dock = System.Windows.Forms.DockStyle.Fill;
                childform.ControlBox = false;
                childform.TopLevel = false;
                this.panel_Main.Controls.Add(childform);
                childform.Show();


    2012年3月8日 8:16

答案

  • 您好,我在Form1上拉一個button及一個panel(panel_Main) dock = Fill。
    然後在button1的Click上加入Form2,Form2的backColor是綠色的!
    當Form1 Resize時,Form2也會哦!

    private void button1_Click(object sender, EventArgs e)
    {
    	Form2 childform = new Form2();
    	childform.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    	childform.Dock = System.Windows.Forms.DockStyle.Fill;
    	childform.ControlBox = false;
    	childform.TopLevel = false;
    	this.panel_Main.Controls.Add(childform);
    	childform.Show();
    }


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已标记为答案 senic_sum 2012年3月9日 7:10
    2012年3月9日 2:31
  • dear

    容器除了要设定Anchor/Dock属性外,里面的所有控件也都要设定Anchor/Dock属性,如果你都设定了,还无法如其展现你要的效果,表示可能有容器没有设定到。

    你可以用文件大纲仔细检查下,他在

    View→Other Windows→Document Outline / Ctrl+Alt+T

    http://www.youtube.com/watch?v=5g-Ixsf2IqA


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2012年3月9日 4:44

全部回复

  • 您好,
    您新增的Form上有其他Control嗎?
    您可設定他們的Anchor為Anchor =  Top |  Bottom  |  Left  | Right;
    或是使用flowLayoutPanel來放置Control。
    謝謝!

    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年3月8日 10:20
  • childform.Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);

    这行代码加入了,还是没有变化。

    新增的Form是一个窗体,里边有两个panel,他们的anchor都做了设置!

    2012年3月9日 0:00
  • 您好,您設定Form的Anchor跟設定Dock = Fill效果是一樣的,雖然Form會隨著mainForm調整,但是裡面所有的元件預設的Anchor都是Top | Left吧!

    所以其他的元件還是不會跟著變大哦!


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年3月9日 1:01
  • Form并没有随着MainForm调整!我设定了两个背景色,MainForm大小变化后,只看到了MainForm的背景色!!

    Form里的所有原件预设的Anchor都是跟随Form变化的,都是设定好的

    2012年3月9日 2:09
  • 您好,我在Form1上拉一個button及一個panel(panel_Main) dock = Fill。
    然後在button1的Click上加入Form2,Form2的backColor是綠色的!
    當Form1 Resize時,Form2也會哦!

    private void button1_Click(object sender, EventArgs e)
    {
    	Form2 childform = new Form2();
    	childform.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    	childform.Dock = System.Windows.Forms.DockStyle.Fill;
    	childform.ControlBox = false;
    	childform.TopLevel = false;
    	this.panel_Main.Controls.Add(childform);
    	childform.Show();
    }


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已标记为答案 senic_sum 2012年3月9日 7:10
    2012年3月9日 2:31
  • dear

    容器除了要设定Anchor/Dock属性外,里面的所有控件也都要设定Anchor/Dock属性,如果你都设定了,还无法如其展现你要的效果,表示可能有容器没有设定到。

    你可以用文件大纲仔细检查下,他在

    View→Other Windows→Document Outline / Ctrl+Alt+T

    http://www.youtube.com/watch?v=5g-Ixsf2IqA


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/

    2012年3月9日 4:44
  • 谢谢!

    整个程序我重新做了一遍!

    OK了,谢谢!

    2012年3月9日 8:39