我有这个方法在窗体上生成一个Panel:
private void createPanels(int spacing)
{
pnl1.Location = new Point(0, spacing);
pnl1.BorderStyle = BorderStyle.FixedSingle;
pnl1.Size = new Size(100, 93);
tabRotaBuild.Controls.Add( pnl1);
}
然后我在表单加载中调用此方法:
private void Form1_Load(object sender, EventArgs e)
{
createPanels(60);
}
我接下来要做的是再次显示此面板(新面板),而不清除现有面板。我有一个按钮,在单击时会生成新面板,但是当我单击它时,现有面板会在显示新面板时消失。
这是按钮背后的代码:
int s = 0;
private void button1_Click(object sender, EventArgs e)
{
s += 100;
createPanels(s);
}
答案 0 :(得分:2)
检查方法,您只是更改现有Panel
的位置,Control.Add方法再次设置Parent
属性,BorderStyle
和Size
已经被设置为相同的值:
private void createPanels(int spacing)
{
pnl1.Location = new Point(0, spacing); //notice here
pnl1.BorderStyle = BorderStyle.FixedSingle;
pnl1.Size = new Size(100, 93);
tabRotaBuild.Controls.Add( pnl1);
}
您需要创建新的Panel
在方法中添加pnl1 = new Panel();
private void createPanels(int spacing)
{
pnl1 = new Panel();
pnl1.Location = new Point(0, spacing);
pnl1.BorderStyle = BorderStyle.FixedSingle;
pnl1.Size = new Size(100, 93);
tabRotaBuild.Controls.Add( pnl1);
}
或者您可以在方法
中声明并实例化新面板Panel panel = new Panel();
请注意,您在添加的面板上没有参考。您可以将每个引用添加到方法外部声明的List<Panel>
或类似的内容。