【发布时间】:2017-01-06 23:01:45
【问题描述】:
我正在尝试从一个控制变量创建多个控件(在本例中为面板)。我的意思是当我按下一个按钮时,3 个面板使用一个 Panel 变量出现在不同的位置。我当前的代码是这样的
Panel panel = new Panel();
int panel_LOC = -60;
int i;
private void button1_Click(object sender, EventArgs e)
{
i = i + 1;
pane1_LOC = panel_LOC + 60;
panel.Location = new Point(0, panel_LOC);
panel.Name = "panelName_" + i.ToString();
panel.Width = 1052;
panel.Height = 50;
panel.BackColor = Color.FromArgb(222, 222, 222);
panelIWantToCreateTheControlsOn.Controls.Add(panel);
}
当我按下按钮时,它会在位置 0,0 处创建一个具有所需属性的面板。当我第二次按下按钮时,它会在位置 0、60 处创建一个面板,但它会删除第一个面板。当我第三次按下按钮时,它会在位置 0、120 处创建一个面板,然后再次删除面板 2。
这不是我想要的。我希望面板 1 和面板 2 保留而不被删除。如何从一个变量创建多个控件,我可以在每种方法中访问这些控件,并且在创建时不会删除其他控件。
【问题讨论】:
-
它不会删除第一个面板,它只是将其移动到新位置。请问你想达到什么目的?为什么你认为你必须只使用一个变量来保存对多个 Panel 控件的引用?
-
我正在制作一个待办事项列表应用程序。您输入您必须执行的操作,然后它会创建一个面板,其中包含在标签内输入的文本。我想使用一个变量,因为所有面板看起来都一样,标签只是包含不同的文本。它可以保存数据,并且可以防止我一遍又一遍地输入相同的变量。
-
我的评论的意思是当我有这样的代码时: Panel panel1 = new Panel();面板面板 2 = 新面板();等等。这将是有效的,因为它需要我这样做大约 50 次。我不能使用选项卡控件或任何其他控件,因为它们看起来不如平面面板。我知道将来我应该研究自定义控件
-
通过表单设计器创建一个 panel1 的实例(及其控件,即标签、文本框等)(将其“Modifiers”属性设置为 internal 并将其“Visible”属性设置为 false)。当您需要面板的新实例时,如果它是第一个,请执行“panel1.Visible=true”。否则使用表单的新实例将其面板“移动”到当前表单:“Form1 tempfrm=new Form1() ; tempfrm.panel1.Parent=panel1.Parent ; tempfrm.pane1.Location = ...”。跨度>
标签: c# winforms visual-studio visual-studio-2015