c# panel 布局问题

潘多拉的小石头 2014-08-18 02:42:44
在后台代码动态的向一个已经存在的Panel: pnlParent 的中添加两个Panel : pnl_top, pnl_fill

最后pnlfill填充了整个 pnlParent;

pnlParent.Height = 300;

Panel pnl_top = new Panel();
pnl_top.Size = new Size(100,150);
pnl_top.BackColor = Color.Blue;
this.pnlParent.Controls.Add(pnl_top);
pnl_top.Dock = DockStyle.Top;


Panel pnl_fill = new Panel();
pnl_fill.BackColor = Color.Red;
this.pnlParent.Controls.Add(pnl_fill);
pnl_fill.Dock = DockStyle.Fill;

MessageBox.Show("pnlParent.Height : " + pnlParent.Height.ToString() + " pnl_fill.Height:"+pnl_fill.Height.ToString());

...全文
412 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Peng_baoqing 2014-08-18
  • 打赏
  • 举报
回复

            pnlParent.Height = 300;

            Panel pnl_top = new Panel();
            pnl_top.Size = new Size(100,150);
            pnl_top.BackColor = Color.Blue;
            this.pnlParent.Controls.Add(pnl_top);
            pnl_top.Dock = DockStyle.Top;


            Panel pnl_fill = new Panel();
            pnl_fill.BackColor = Color.Red;
            this.pnlParent.Controls.Add(pnl_fill);
            pnl_fill.Dock = DockStyle.Fill;
            pnl_fill.BringToFront();

            MessageBox.Show("pnlParent.Height : " + pnlParent.Height.ToString() + "     pnl_fill.Height:"+pnl_fill.Height.ToString());
  • 打赏
  • 举报
回复
参照3楼的再加你自己定义的大小可行

panel1.Height = 600;
            panel1.BackColor = Color.Aqua;
            Panel pnl_top = new Panel();
            pnl_top.BackColor = Color.Blue;
            pnl_top.Size = new Size(100, 150);/////////////
            this.panel1.Controls.Add(pnl_top);
            pnl_top.Dock = DockStyle.Top;
            pnl_top.SendToBack();

            Panel pnl_fill = new Panel();
            pnl_fill.BackColor = Color.Red;
            this.panel1.Controls.Add(pnl_fill);
            pnl_fill.Dock = DockStyle.Fill;
            pnl_fill.BringToFront();

            MessageBox.Show("pnlParent.Height : " + panel1.Height.ToString() + "     pnl_fill.Height:" + pnl_fill.Height.ToString());
sunny906 2014-08-18
  • 打赏
  • 举报
回复

            pnlParent.Height = 300;

            Panel pnl_top = new Panel();
            pnl_top.BackColor = Color.Blue;
            this.pnlParent.Controls.Add(pnl_top);
            pnl_top.Dock = DockStyle.Top;
            pnl_top.SendToBack();

            Panel pnl_fill = new Panel();
            pnl_fill.BackColor = Color.Red;
            this.pnlParent.Controls.Add(pnl_fill);
            pnl_fill.Dock = DockStyle.Fill;
            pnl_fill.BringToFront();
ArmStronger 2014-08-18
  • 打赏
  • 举报
回复
算下不就好了,Location和Anchor配合一下
  • 打赏
  • 举报
回复
怎样才能使的pnl_top 和pnl_fill 的Height 加起来 正好为pnlParent 的Height! 跪求解答!

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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