Разрешение вопросов, связанных с созданием элементов управления и компонентов
В этом разделе перечислены распространенные проблемы, возникающие при разработке компонентов и элементов управления. Дополнительные сведения см. в разделе Программирование с использованием компонентов.
Не удается добавить элемент управления в панель элементов.
Не удается отладить настраиваемые элементы управления и компоненты Windows Forms
В унаследованном компоненте или элементе управления событие вызывается дважды
Ошибка во время разработки: "Не удалось создать компонент Имя компонента"
STAThreadAttribute
Значок компонента не отображается в панели элементов
Не удается добавить элемент управления в панель элементов
Чтобы добавить в Панель элементов настраиваемый элемент управления, созданный в другом проекте, или элемент управления, созданный сторонним производителем, необходимо сделать это вручную. Если в текущем проекте содержится пользовательский элемент управления или компонент, он должен отображаться в панели элементов автоматически. Дополнительные сведения см. в разделе Пример. Автоматическое заполнение панели элементов пользовательскими компонентами.
Чтобы добавить элемент управления в панель элементов
Щелкните правой кнопкой мыши по панели элементов и из контекстного меню выберите Выбрать элементы.
В диалоговом окне Выбор элементов панели элементов добавьте компонент.
Чтобы добавить компонент или элемент управления .NET Framework, щелкните вкладку Компоненты .NET Framework.
– или –
Чтобы добавить COM-компонент или элемент управления ActiveX, щелкните вкладку COM-компоненты.
Если элемент управления указан в диалоговом окне, убедитесь, что он выделен, и нажмите кнопку ОК.
Элемент управления добавляется в Панель элементов.
Если элемент управления не отображается в диалоговом окне, выполните следующую процедуру.
Нажмите кнопку Обзор.
Выберите папку, в которой находится DLL-файл, содержащий этот элемент управления.
Выберите DLL-файл и щелкните Открыть.
Элемент управления отображается в диалоговом окне.
Убедитесь, что необходимый элемент управления выбран, а затем нажмите кнопку ОК.
Элемент управления добавляется в Панель элементов.
Не удается отладить настраиваемые элементы управления и компоненты Windows Forms
Если элемент управления происходит из класса UserControl, можно выполнить отладку его поведения во время выполнения, используя тестовый контейнер. Дополнительные сведения см. в разделе Практическое руководство. Тестирование поведения элемента UserControl во время выполнения.
Другие настраиваемые элементы управления и компоненты не являются автономными проектами. Они должны размещаться в каком-либо приложении, например, в проекте Windows Forms. Чтобы отладить элемент управления или компонент, его необходимо добавить к проекту Windows Forms.
Чтобы выполнить отладку компонента или элемента управления
В меню Построение щелкните Построить решение, чтобы выполнить построение собственного решения.
Чтобы добавить к приложению тестовый проект, в меню Файл выберите Добавить, а затем выберите команду Создать проект.
В диалоговом окне Добавление нового проекта выберите в качестве типа проекта Приложение Windows.
В обозревателе решений щелкните правой кнопкой мыши узел Ссылки для создания нового проекта. Чтобы добавить ссылку на проект, содержащий компонент или элемент управления, в контекстном меню щелкните Добавить ссылку.
Создайте экземпляр компонента или элемента управления в тестовом проекте. Если компонент находится в панели элементов, его можно перетащить на поверхность конструктора. Можно также создать экземпляр программным путем, как показано в следующем примере кода.
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 для сопоставления значка и настраиваемого компонента для автоматически сгенерированных компонентов в панели инструментов точечный рисунок не отображается. Чтобы увидеть точечное изображение, перезагрузите элемент управления, используя диалоговое окно Выбор элементов панели элементов. Дополнительные сведения см. в разделе Практическое руководство. Предоставление точечного рисунка панели элементов для элемента управления.
См. также
Задачи
Пример. Автоматическое заполнение панели элементов пользовательскими компонентами
Практическое руководство. Тестирование поведения элемента UserControl во время выполнения
Пример. Отладка пользовательских элементов управления Windows Forms во время разработки
Устранение неполадок, возникающих в режиме разработки
Другие ресурсы
Создание элементов управления Windows Forms во время разработки