C#从嵌套类中添加文本框

时间:2014-09-07 15:22:58

标签: c# forms textbox

我有一个表单,在加载时实例化另一个类(boxMaker),后者又创建另一个类(boxObj)。我希望boxObj能够创建一个出现在我的表单上的文本框。

2个问题:

除非我使用form.controls.add(textBox),否则它不会显示我的文本框; - 是正确的吗?

为了使其工作,我必须依次将原始表单传递给每个类: 伪代码:

new boxMaker(this)

boxMaker创建者:

public boxMaker (Form form)
new boxObj(form)

boxObj创建者:

public boxObj (Form form)
new textbox
form.controls.add(textbox)

必须始终将原始对象一直传递到链条中,这真的很笨重:

有更简洁的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以让BoxMaker返回TextBox,让Form句柄将其添加到Control列表,而不是将原始Form传递给public class BoxMaker { public TextBox CreateTextBox() { TextBox textBox = new TextBox(); // Do Stuff return textBox; } }

Form

并在public class Form1 { public void SomeEventHandler(object sender, EventArgs e) { BoxMaker maker = new BoxMaker; TextBox makerMadeTextBox = maker.CreateTextBox(); this.Controls.Add(makerMadeTextBox); } } 中使用它,如此:

{{1}}