C# 调用方法以创建多个动态表单控件
我有一个方法可以在表单上生成一个面板:C# 调用方法以创建多个动态表单控件,c#,winforms,C#,Winforms,我有一个方法可以在表单上生成一个面板: private void createPanels(int spacing) { pnl1.Location = new Point(0, spacing); pnl1.BorderStyle = BorderStyle.FixedSingle; pnl1.Size = new Size(100, 93); tabRotaBuild.Contro
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);
}
检查该方法,您只需更改现有
面板和控件的位置。Add方法正在再次设置父属性,边框样式和大小已设置为相同的值:
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);
}
您需要创建新的面板
添加pnl1=新面板()代码>在您的方法中
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();
请注意,添加的面板上不会有引用。您可以将每个引用添加到方法之外声明的列表或类似内容。不要将新面板添加到选项卡
,而是尝试将其添加到FlowLayout
控件。