从派生表单访问基本表单的控件时有什么更好的主意

时间:2018-03-09 01:47:30

标签: c# winforms

我不知道应该如何访问ase表格的控件。

  1. 将Control的访问修饰符设置为“受保护”。

    public class BaseForm
    {
        protected System.Windows.Forms.Button button1;
        protected System.Windows.Forms.Label label1;
    }
    
    public class Form2 : BaseForm
    {
        public Form2()
        {
            button1.Text = "J. Doe";
            label1.Text = "Kim";
        }
    }
    
  2. 将控制权保留为私有并创建属性

    public class BaseForm
    {
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Label label1;
    
        public Button Button1
        {
            get { return button1; }
        }
        public Label Lable1
        {
            get { return label1; }
        }
    
    }
    
    public class Form2 : BaseForm
    {
        public Form2()
        {
            Button1.Text = "J. Doe";
            Lable1.Text = "Kim";
        }
    }
    
  3. 哪个更好?

1 个答案:

答案 0 :(得分:1)

受保护告诉VS,元素只能由声明它们的类的子类访问

public class BaseForm
{
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Label label1;

    public Button Button1
    {
        get { return button1; }
    }
    public Label Lable1
    {
        get { return label1; }
    }

}

public class Form2 : BaseForm
{
    public Form2()
    {
        Button1.Text = "J. Doe";
        Lable1.Text = "Kim";
    }
}

在您的代码中,BaseForm是父类,因此继承父类的方法是最佳选择。

{{1}}

这里使用了访问器,它们通常用于将参数传递给全局变量,这些变量重新定义局部变量的值,并用于在两个独立的类之间传递参数

如果你总是要将一个类扩展到BaseForm,请使用proteted,如果你想从任何地方调用变量,请使用访问描述符(get; set;)