Winforms Inhereted Control мешает дизайнеру работать - PullRequest
0 голосов
/ 18 июня 2019

У меня есть 2 формы, которые наследуют элемент управления из класса ниже:

public class AInbox: Form
{
    public FlowLayoutPanel InboxItems;
}

Формы наследуются как таковые:

public partial class Inbox : AInbox
{
...
}

В файле Designer.cs я закомментировал оригинальное объявление элемента управления "InboxItems", и все компилируется и работает нормально ... кроме дизайнера GUI. Когда я открываю конструктор, я получаю сообщение об ошибке «Переменная« InboxItems »либо не объявлена, либо никогда не была назначена».

Есть ли какой-нибудь способ использовать это наследство и все еще иметь работу дизайнера?

1 Ответ

1 голос
/ 18 июня 2019

Я бы рекомендовал не наследовать форму с сгенерированным кодом (как вы делаете с Inbox).

Если вы хотите, чтобы дочерний класс (Inbox) добавил дополнительные элементы управления, я бы не использовалконструктор непосредственно в дочернем классе, потому что я не думаю, что дизайнер форм визуальной студии будет хорошо играть, когда половина формы будет разработана в родительском классе.Если вам нужно повторно использовать определенные части вашей формы в другой форме, вы можете рассмотреть возможность перемещения этой части формы в отдельный пользовательский элемент управления.Вы можете использовать конструктор для этого пользовательского элемента управления, а затем поместить пользовательский элемент управления в формы.

Если вам просто нужна такая же форма, сохраните экземпляр формы в другом классе.Отодвиньте свою логику от формы (представления) и другого класса (контроллера).

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