C# 面板的动态添加
我意识到类似的问题已经在这里被问了很多次,但我无法理解为什么我的代码不起作用 仅当int变量C# 面板的动态添加,c#,winforms,dynamic,C#,Winforms,Dynamic,我意识到类似的问题已经在这里被问了很多次,但我无法理解为什么我的代码不起作用 仅当int变量selected等于0时,我才尝试添加面板。当我运行代码时,我并没有看到我预期的面板 我的代码如下: if (selected == 0) { Panel p = new Panel(); p.Height = 637; p.Width = 449; p.Location = new Point (269, 449); p.BorderStyle = B
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");
}
我做错了什么?您正在创建面板,但没有将其添加到父控件(我假设它是一个表单)中 您需要添加以下内容:
this.Controls.Add(p);
因此,您的总代码如下所示:
if (selected == 1)
{
var p = new Panel();
// Set some properties
this.Controls.Add(p);
}
您需要将面板添加到父控件:
this.Controls.Add(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");
}
如果要将一些控件添加到面板
中,请记住:
- 相对于
面板设置
.Location
- 使用
p.Controls.Add(你的新控件)