动态添加面板
本文关键字:添加 动态 | 更新日期: 2023-09-27 18:34:56
我意识到这里已经多次提出了类似的问题,但我无法弄清楚为什么我的代码不起作用。
我尝试仅在 int 变量 selected
等于 0
时才添加一个面板。当我运行我的代码时,我没有像我预期的那样看到我的面板。
我的代码如下:
if (selected == 0)
{
Panel p = new Panel();
p.Height = 637;
p.Width = 449;
p.Location = new Point (269, 449);
p.BorderStyle = BorderStyle.FixedSingle;
p.Visible = true;
p.BackColor = Color.White;
p.AllowDrop = true;
p.Dock = DockStyle.Top;
p.Show();
MessageBox.Show("Now we should see the Panel");
}
我做错了什么?
您正在创建面板,但您没有将其添加到父控件(我假设它是一个 Form(。
您需要添加如下所示的内容:
this.Controls.Add(p);
所以你的总代码将是这样的:
if (selected == 1)
{
var p = new Panel();
// Set some properties
this.Controls.Add(p);
}
您需要将面板添加到父控件:
this.Controls.Add(panel);
我认为您应该阅读此内容 如何使用Visual C#在运行时以编程方式将控件添加到Windows窗体
创建一个Panel
,但不将其添加到任何控件集合。
您可以使用以下代码执行此操作:
if (selected == 0)
{
Panel p = new Panel();
p.Height = 637;
p.Width = 449;
p.Location = new Point (269, 449);
p.BorderStyle = BorderStyle.FixedSingle;
p.Visible = true;
p.BackColor = Color.White;
p.AllowDrop = true;
p.Dock = DockStyle.Top;
///p.Show();
this.Controls.Add(p);
MessageBox.Show("Now we should see the Panel");
}
如果要向Panel
添加一些控件,请记住:
- 相对于
Panel
设置.Location
- 使用
p.Controls.Add(yourNewControl)