Устранение неполадок с созданием элементов управления и компонентов

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

  • Не удается добавить элемент управления на панель элементов

  • Не удается выполнить отладку пользовательского элемента управления или компонента Windows Forms

  • Событие в производном элементе управления или компоненте вызывается дважды

  • Ошибка времени разработки: "Не удалось создать компонент имя компонента"

  • STAThreadAttribute

  • Значок компонента не отображается на панели элементов

Не удается добавить элемент управления на панель элементов

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

Добавление элемента управления на панель элементов

  1. Щелкните панель инструментов правой кнопкой мыши и выберите команду Выбрать элементы.

  2. Добавьте компонент в диалоговом окне Выбор элементов панели элементов.

    • Чтобы добавить компонент или элемент управления .NET Framework, откройте вкладку Компоненты .NET Framework.

      — или —

    • Чтобы добавить COM-компонент или элемент управления ActiveX, откройте вкладку COM-компоненты.

  3. Если элемент управления указан в диалоговом окне, выделите его и нажмите кнопку ОК.

    Элемент управления будет добавлен на панель элементов.

  4. Если элемент управления не указан в диалоговом окне, выполните следующие действия.

    1. Нажмите кнопку Обзор .

    2. Найдите папку с DLL-файлом, содержащим ваш элемент управления.

    3. Выберите этот DLL-файл и нажмите кнопку Открыть.

      Элемент управления отобразится в диалоговом окне.

    4. Выберите элемент управления и нажмите кнопку ОК.

      Элемент управления будет добавлен на панель элементов.

Не удается выполнить отладку пользовательского элемента управления или компонента Windows Forms

Если элемент управления является производным от класса UserControl, его поведение во время выполнения можно отлаживать, используя тестовый контейнер. Дополнительные сведения см. в разделе Практическое руководство. Тестирование поведения элемента UserControl во время выполнения.

Другие настраиваемые элементы управления и компоненты не являются автономными проектами и должны размещаться в приложении, таком как проект Windows Forms. Для выполнения отладки элемент управления или компонент необходимо добавить в проект Windows Forms.

Отладка элемента управления или компонента

  1. В меню Сборка выберите пункт Сборка решения, чтобы создать решение.

  2. В меню Файл выберите пункт Добавить, и затем Новый проект, чтобы добавить в приложение тестовый проект.

  3. В диалоговом окне Добавление нового проекта выберите в качестве типа проекта Приложение Windows.

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

  5. Создайте экземпляр элемента управления или компонента в тестовом проекте. Если компонент находится на панели элементов, его можно перетащить в область конструктора или создать экземпляр программными средствами, как показано в следующем примере кода.

    Dim Component1 As New MyNeatComponent()
    
    MyNeatComponent Component1 = new MyNeatComponent();
    

    После этого отладку элемента управления или компонента можно выполнить в обычном режиме.

Дополнительные сведения об отладке см. в разделах Отладка в Visual Studio и Пошаговое руководство: отладка пользовательского управления Windows Forms во время разработки.

Событие в производном элементе управления или компоненте вызывается дважды

Это может быть связано с дублированием предложения Handles. Дополнительные сведения см. в разделе Устранение неполадок, связанных с унаследованными обработчиками событий в Visual Basic.

Ошибка времени разработки: "Не удалось создать компонент имя компонента"

Компонент или элемент управления должен предоставлять конструктор без параметров. Если в среде разработки создается экземпляр компонента или элемента управления, он не пытается предоставить какие-либо параметры для перегрузок конструктора, принимающих параметры.

STAThreadAttribute

STAThreadAttribute сообщает общеязыковой среде выполнения (CLR), что в Windows Forms используется модель "Подразделение" с одинарным потоком. Если не применить этот атрибут к методу Main приложения Windows Forms, может возникнуть непредусмотренное поведение. Например, могут не отображаться фоновые изображения для таких элементов управления, как ListView. Некоторым элементам управления этот атрибут может требоваться также для правильного выполнения операций автозаполнения и перетаскивания.

Значок компонента не отображается на панели элементов

Если для сопоставления значка с настраиваемым элементом управления используется ToolboxBitmapAttribute, растровое изображение для компонентов, генерируемых автоматически, не отображается на панели элементов. Чтобы увидеть растровое изображение, перезагрузите элемент управления с помощью диалогового окна Выбор элементов панели элементов. Дополнительные сведения см. в разделе Практическое руководство. Предоставление точечного рисунка панели элементов для элемента управления.

См. также