Исключение ошибки пользовательского элемента управления Winforms

#c# #winforms #visual-studio #user-controls #visual-studio-2013

#c# #winforms #visual-studio #пользовательские элементы управления #visual-studio-2013

Вопрос:

Итак, по сути, у меня есть пользовательский элемент управления под названием ExcelDisplay. Я пытаюсь перетащить его в visual studio из toolbox в свою веб-форму в том же проекте и получаю исключение отсутствующего метода. В свое время конструктор был параметризован, но я изменил его, решив, что это плохая идея дизайна.

Похоже, что он говорит, что конструктор отсутствует, но его, очевидно, нет.

Моя winform для размещения элемента управления пуста, за исключением автоматически созданного кода, который visual Studio помещает туда.

Код для конструктора моего ExcelDisplay выглядит следующим образом.

     namespace STS_Console.UserControls
    {
        public partial class ExcelDisplay : UserControl
        {

            public ExcelDisplay()
            {
                InitializeComponent();

                DataDisplay.Columns[0].HeaderText = "Data";
                //debug
                string x = DataDisplay.Columns[0].GetType().ToString();
                x.ToString();
            }
  

Сообщение об ошибке выглядит следующим образом.
сообщение об ошибке

Итак, эта ошибка возникает, когда я перетаскиваю конструктор следующим образом  Перетаскивание

В любом случае, это моя проблема. Я не уверен, что является причиной этого или как это исправить. Я был бы рад опубликовать дополнительный код по запросу.

Ответ №1:

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

Комментарии:

1. Мой проект довольно небольшой, занимает всего несколько недель. Необходимо ли это?

2. Если вы хотите оставаться в здравом уме, да. В противном случае Visual Studio несколько раз за эти недели испортит ваш проект. Это займет около 5 минут работы, и это окупится большим временем по сравнению с бесконечным разочарованием от того, что вы этого не делаете. Просто посмотрите на эту проблему. Сколько времени вы потратили? Это могло бы быть 0, если бы вы разделили свои пользовательские элементы управления.

Ответ №2:

Решение для перестройки исправило это для меня, хотя, если вы регулярно вносите изменения в свой пользовательский элемент управления, вам следует перенести их в отдельный проект.

Моей конкретной проблемой был пользовательский элемент управления внутри пользовательского элемента управления.