Унаследованные элементы управления winforms не компилируются - PullRequest
1 голос
/ 12 февраля 2020

У меня установлена ​​последняя стабильная версия VS2019 с последней версией Resharper. Когда я создаю элемент управления, который наследуется от Textbox, у меня возникают 2 проблемы.

1) Он не отображается на панели инструментов после построения решения, да, я проверил, что опция автоматического добавления на панель инструментов включена .

2) Новый элемент управления Textbox, назовем его SpecialTextBox, не распознается как элемент управления. Когда я вручную пытаюсь добавить SpecialTextBox в список элементов управления форм, компилятор говорит, что не может конвертировать из SpecialTextBox в System. Windows .Forms.Control. Но SpecialTextbox наследует от TextBox, который наследует от TextboxBase, который наследует от Control.

Вот код:

public class SpecialTextbox : TextBox, ITextProvider
{
    public SpecialTextbox ()
    {
    }
}

Чего мне не хватает?

1 Ответ

1 голос
/ 12 февраля 2020

Если ваш SpecialTextbox элемент управления не является файлом git System.Windows.Forms.TextBox (если у вас случайно есть MyApp.TextBox или какой-либо другой класс-самозванец, который вы случайно используете, не используя полное имя для TextBox, и тот, который не наследуется от System.Windows.Forms.Control), тогда он объяснит обе ваши ошибки:

  1. То, что классы, не являющиеся элементами управления, не появятся в панели инструментов. (Поскольку это не элемент управления)
  2. То, что его нельзя преобразовать в систему. Windows .Forms.Control (Поскольку это не элемент управления)

Вы унаследовали от просто TextBox и, вероятно, у вас есть директива using, которая задает TextBox другого пространства имен, которое не System.Windows.Forms.TextBox.

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