Базовый класс, взаимодействующий с производными классами Controls в Winforms C # - PullRequest
2 голосов
/ 19 июня 2011

Допустим, у меня есть класс FormBase, унаследованный от «Form», и у меня есть форма winforms, которая наследуется от FormBase, как мне получить доступ и управлять элементами управления в дочерней форме следующим образом:



public class FormBase : Form
    {

        protected FormBase()
        {
          //for each Control in Child form Controls

          //Do something with the Controls
        }
    }

public partial class Products : FormBase 
    {
        public Products()
        {
            InitializeComponent();            
         }
    }

Ответы [ 2 ]

3 голосов
/ 19 июня 2011

Вы не должны обращаться к элементам управления дочерней формы в конструкторе базовой формы. Потому что сначала будет запущен базовый конструктор, а потом дочерний конструктор.

Вместо этого вы должны сделать

public class FormBase : Form
{
   protected override void OnLoad(EventArgs e)
   {
     //access the child controls here. Take a look at Will A's answer
     base.OnLoad(e);
   }
}
0 голосов
/ 19 июня 2011

Посмотрите на этот вопрос и ответы - это должно дать вам то, что вам нужно, хотя и с некоторой адаптацией.

...