在C#中,是否可以动态创建一个富文本框,使用多个属性(字体,大小等)配置该框,然后动态创建那个框的副本,以便新创建的重复项已经拥有所需的属性?我来自VB6(不要笑),控制阵列使这种事情变得容易。我在这里和其他地方寻找答案,但没有运气。
感谢。
答案 0 :(得分:2)
理论上,是的,你可以,但你必须克隆它。 C#提供了一种方法,但它可能会进行浅层克隆。您需要对所有级别进行深入而完整的克隆。
创建工厂功能更容易,也更好。您调用它并创建一个新控件,设置属性,然后返回完全初始化的对象。像这样:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
然后你这样称呼它:
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
将它变成一个类而不是公共函数可能是有益的。这样你可以调用函数Create()
,你可以这样调用它:
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();