Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态复制C#中配置的富文本框?_C# - Fatal编程技术网

动态复制C#中配置的富文本框?

动态复制C#中配置的富文本框?,c#,C#,在C#中,是否可以动态创建一个富文本框,使用多个属性(字体、大小等)配置该框,然后动态创建该框的副本,以便新创建的副本已经具有所需的属性?我来自VB6(别笑),在那里控制数组使这类事情变得简单。我在这里和其他地方寻找过答案,但运气不好 谢谢 理论上,你可以,但你必须克隆它。C#提供了一种方法,但它很可能是一种浅层克隆。你需要对所有级别进行深入完整的克隆 创建工厂函数更简单、更好。调用它,它将创建一个新控件,设置属性,然后返回完全初始化的对象。大概是这样的: public RichTextBox

在C#中,是否可以动态创建一个富文本框,使用多个属性(字体、大小等)配置该框,然后动态创建该框的副本,以便新创建的副本已经具有所需的属性?我来自VB6(别笑),在那里控制数组使这类事情变得简单。我在这里和其他地方寻找过答案,但运气不好


谢谢

理论上,你可以,但你必须克隆它。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();

谢谢这工作做得很好!另外,现在我知道怎么做了,我可以用它做各种各样的事情。实际上,虽然这对在表单上放置控件非常有效,但我似乎无法从其他方法访问它们。我试着创建一个类版本,但在范围方面不断出现错误。我知道这些都是新手的问题,但我完全是新手!你能告诉我初始化类的步骤吗?谢谢,谢谢!这工作做得很好!另外,现在我知道怎么做了,我可以用它做各种各样的事情。实际上,虽然这对在表单上放置控件非常有效,但我似乎无法从其他方法访问它们。我试着创建一个类版本,但在范围方面不断出现错误。我知道这些都是新手的问题,但我完全是新手!你能告诉我初始化类的步骤吗?谢谢