在另一个类中移动get / set方法

时间:2012-07-31 05:39:11

标签: c# winforms

是否可以在另一个类中移动get set方法?

我正在使用一个选项表单,它基本上直接反映了主表单中的所有更改(主要用于更改控件颜色,字体等。

当你开始修改很多控件时,问题就开始了,因为主类填充了get set方法,所以我想知道是否有可能重构代码以提高类的可读性,甚至更好,如果可以以某种方式移动另一个类中的方法(部分类?)

这是一个只有两个控件的小例子

public Font TreeFont
{
    get { return customTreeView1.Font; }
    set { customTreeView1.Font = value; }
}

public Font TextBoxFont
{
    get { return customTextBox1.Font; }
    set { customTextBox1.Font = value; }
}

public Font MenusFont
{
    get { return menuStrip1.Font; }
    set
    {
        menuStrip1.Font = value;
        statusStrip1.Font = value;
        contextMenuStripForSnippetContent.Font = value;
        contextMenuStripTreeViewMenu.Font = value;
    }
}

public Color TreeFontForeColor
{
    get { return customTreeView1.ForeColor; }
    set { customTreeView1.ForeColor = value; }
}

public Color TextBoxFontForeColor
{
    get { return customTextBox1.ForeColor; }
    set { customTextBox1.ForeColor = value; }
}

public Color TreeFontBackgroundColor
{
    get { return customTreeView1.BackColor; }
    set { customTreeView1.BackColor = value; }
}

public Color TextBoxFontBackgroundColor
{
    get { return customTextBox1.BackColor; }
    set { customTextBox1.BackColor = value; }
}

你可以想象,因为它们中有很多需要改变,所以线条堆积起来。

此外,更好的做法是返回控件并在其他表单上进行操作或将get / set方法视为更好的做法?

提前致谢。

3 个答案:

答案 0 :(得分:1)

您可以使用C# Regions来管理大型代码文件,也可以使用Partial Classes将大型代码文件拆分为多个可管理文件。

答案 1 :(得分:1)

如果我理解正确 - 问题不在于"类"但"文件"。因此,您可以使用Partial Classes将类拆分为两个文件(就像Visual Studio使用InitializeComponent方法一样)。

确保命名空间相同(如果您在子文件夹中创建文件,您将获得嵌套命名空间。只需更改它。)另外,请确保您的课程以public partial class <开头em>在两个文件中。并且没有在两个类中声明相同的属性。

分步说明 右键单击&#34;解决方案资源管理器&#34;中的项目。点击&#34;添加&#34;。点击&#34; New Item&#34;。点击&#34; class&#34;。将class Class1更改为public partial class Form1 : Form。在文件顶部添加using System.Windows.Forms;。添加您的属性。

答案 2 :(得分:0)

您可以使用另一种允许Page.FindControl(“controlNameHere”)的函数,并在正确的光线下投射它。这更适用于ASP.NET页面,而不适用于Windows表单,但您可以在Find control by name from Windows Forms controls找到相同的分辨率。通过这种方式,您可以拉出控件名称并进行操作,而无需返回任何内容。