0

我正在创建一个包含大量表单的应用程序,并且设计器需要花费大量时间来应用所需的视觉样式,因此我创建了一个名为 Layout 的类,以将这些属性更改应用于其 Load() 方法上的每个表单。

      class Layout : Form
    {
        public void ApplicarLayout(Form frm)
        {
            frm.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30)))));
            foreach (Control c in frm.Controls)
            {
                if (c is TextBox)
                {
                    //Apply textBox Formatting
                }
                //Iterate through the controls in the form and add respective format
            }
        }
    }

到目前为止,一切都很好。我的计划是从每个表单继承这个类,然后调用 base.AplicarLayout() 方法。但是,我得到了错误:

Inconsistent accessibility: base class 'EntityClub_.Layout' is less accessible than class 'EntityClub_.MainAdminWindow' 

在这里你可以看到我是如何做到的。

    public partial class MainAdminWindow : Layout
{
    public MainAdminWindow()
    {
        InitializeComponent();
    }

    public void MainAdminWindow_Load(object sender, EventArgs e)
    {
        base.ApplicarLayout(this);//ERROR HERE
    }
}

你知道我怎样才能使用继承来做到这一点吗?我不想实例化该类,也不想用布局方法污染每个窗口的代码。

4

1 回答 1

4

没有显式访问修饰符(并且没有嵌套)的类被暗示为internal.

所以:

class Layout : Form

..是内部的,而:

public partial class MainAdminWindow : Layout

..是公开的(因为您已经明确表示过)。将 Layout 的声明更改为此可以解决问题:

public class Layout : Form
于 2013-01-11T02:16:35.193 回答