Наследовать от UserControl - двойной интерфейс? - PullRequest
1 голос
/ 14 января 2020

У меня есть вопросы по поводу наследования UserControl в проекте WinForm.

У меня есть несколько указанных c панелей, которые являются различными страницами моего приложения. Но у этих указанных c панелей есть некоторый общий код, повторяемый внутри каждой из этих панелей.

Поэтому я хочу закодировать их общее поведение в классе StdPanel, унаследованном от UserControl, и тогда каждая указанная c страница будет наследоваться от стандартная панель.

конкретная панель:

    public partial class SpecificPanel1 : StdPanel
    { 
        public SpecificPanel1 () : base()
        {
            InitializeComponent();
        }
    }

стандартная панель:

    public partial class StdPanel: UserControl
    {  
        public StdPanel()
        {
            InitializeComponent();//Keeping this line or not?
        }

        private void StdPanel_VisibleChanged(object sender, EventArgs e)
        {
          if (Visible)
          {
            //do stuff...
          }
        }
    }

мои вопросы:

мои вопросы: я хочу сделать что-то когда StdPanel_VisibleChanged, я провел много испытаний, и я понимаю, что InitializeComponent () необходим для того, чтобы событие StdPanel_VisibleChanged работало. Сначала я хотел удалить InitializeComponent () из StdPanel, потому что GUI выполняется в SpecificPanel1, и я подумал, что в этом нет необходимости.

Так есть ли у SpecificPanel1 два GUI?

Как эти два GUI вложены? Они присутствуют на экране, а один скрывает второй?

Спасибо

1 Ответ

0 голосов
/ 14 января 2020

Слово "частичное" разделяет класс на два файла. Нет двух классов и нет двух GUI. Всего два файла исходного кода только для одного класса.

Это помогает отделить сгенерированный код от вашего собственного написанного вручную кода.

Файл designer.cs, который вы можете посмотреть, но лучше не изменить его (если вы не знаете, что делаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...