我有两种形式。单击 form1 上的按钮打开 form2,用户在其中添加详细信息,并将其返回到 form1,信息存储到 List
中,并创建文本框和界面的其他元素。
我有 5 个不同级别的选项卡,但添加的信息是相同的。
如何避免使用
创建类似的代码 5 次if (level==5) {//do this whole code again}
添加元素的示例:
int _nextTextBoxTop=15;
List<TextBox> CodesMy = new List<TextBox>();
var code = new TextBox();
CodesMy.Add(code);
code.Location = new Point(12, _nextTextBoxTop);
_nextTextBoxTop += 36;
code.Size = new Size(80, 25);
code.Text = mcode;
tabPageLevel5.Controls.Add.Controls.Add(code);
最佳答案
最简单的解决方案可能是将元素创建重构为一个单独的函数,如下所示:
CreateControls(TabPage tabPage)
{
var code = new TextBox();
CodesMy.Add(code);
code.Location = new Point(12, _nextTextBoxTop);
_nextTextBoxTop += 36;
code.Size = new Size(80, 25);
code.Text = mcode;
tabPage.Controls.Add.Controls.Add(code);
}
您的客户端代码将如下所示:
if (level==5) {CreateControls(tabPageLevel5);}
比动态添加控件更简单的方法可能是创建一个在每个选项卡页上使用的用户控件。
即使您需要动态添加控件,您仍然可以使用用户控件来完成此操作,并每次在每个附加选项卡页上克隆它。
关于c# - 在 win 表单上添加动态元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437253/