动态复制C#中配置的富文本框?
在C#中,是否可以动态创建一个富文本框,使用多个属性(字体、大小等)配置该框,然后动态创建该框的副本,以便新创建的副本已经具有所需的属性?我来自VB6(别笑),在那里控制数组使这类事情变得简单。我在这里和其他地方寻找过答案,但运气不好动态复制C#中配置的富文本框?,c#,C#,在C#中,是否可以动态创建一个富文本框,使用多个属性(字体、大小等)配置该框,然后动态创建该框的副本,以便新创建的副本已经具有所需的属性?我来自VB6(别笑),在那里控制数组使这类事情变得简单。我在这里和其他地方寻找过答案,但运气不好 谢谢 理论上,你可以,但你必须克隆它。C#提供了一种方法,但它很可能是一种浅层克隆。你需要对所有级别进行深入完整的克隆 创建工厂函数更简单、更好。调用它,它将创建一个新控件,设置属性,然后返回完全初始化的对象。大概是这样的: public RichTextBox
谢谢 理论上,你可以,但你必须克隆它。C#提供了一种方法,但它很可能是一种浅层克隆。你需要对所有级别进行深入完整的克隆 创建工厂函数更简单、更好。调用它,它将创建一个新控件,设置属性,然后返回完全初始化的对象。大概是这样的:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();
然后你这样称呼它:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();
让它成为一个类而不是一个公共函数是有益的。这样您就可以调用函数Create()
,您可以这样调用它:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();
理论上,你可以,但你必须克隆它。C#提供了一种方法,但它很可能是一种浅层克隆。你需要对所有级别进行深入完整的克隆 创建工厂函数更简单、更好。调用它,它将创建一个新控件,设置属性,然后返回完全初始化的对象。大概是这样的:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();
然后你这样称呼它:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();
让它成为一个类而不是一个公共函数是有益的。这样您就可以调用函数Create()
,您可以这样调用它:
public RichTextBox RichTextBoxFactory() {
RichTextBox rb = new RichTextBox();
rb.FontFamily = new FontFamily("Arial");
//...
return rb;
}
RichTextBox rb1 = RichTextBoxFactory();
RichTextBox rb2 = RichTextBoxFactory();
RichTextBox rb1 = RichTextBoxFactory.Create();
RichTextBox rb2 = RichTextBoxFactory.Create();
谢谢这工作做得很好!另外,现在我知道怎么做了,我可以用它做各种各样的事情。实际上,虽然这对在表单上放置控件非常有效,但我似乎无法从其他方法访问它们。我试着创建一个类版本,但在范围方面不断出现错误。我知道这些都是新手的问题,但我完全是新手!你能告诉我初始化类的步骤吗?谢谢,谢谢!这工作做得很好!另外,现在我知道怎么做了,我可以用它做各种各样的事情。实际上,虽然这对在表单上放置控件非常有效,但我似乎无法从其他方法访问它们。我试着创建一个类版本,但在范围方面不断出现错误。我知道这些都是新手的问题,但我完全是新手!你能告诉我初始化类的步骤吗?谢谢