我意识到这里已经多次询问了类似的问题,但我无法弄清楚为什么我的代码无效。
我只是在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");
}
我做错了什么?
答案 0 :(得分:3)
您正在创建该面板,但您并未将其添加到您的父控件(我假设它是一个表单)。
您需要添加以下内容:
this.Controls.Add(p);
所以你的总代码将是这样的:
if (selected == 1)
{
var p = new Panel();
// Set some properties
this.Controls.Add(p);
}
答案 1 :(得分:3)
您需要将面板添加到父控件:
this.Controls.Add(panel);
我认为你应该阅读How to programmatically add controls to Windows forms at run time by using Visual C#
答案 2 :(得分:1)
您创建了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
添加一些控件,请记住:
.Location
Panel
p.Controls.Add(yourNewControl)