.NET VS2005 WinForms: как мне перенести пользовательский элемент управления на форму? - PullRequest
2 голосов
/ 24 октября 2008

Я написал потомок UserControl, который равен в сборочной DLL.

Как мне отбросить элемент управления в форме?

namespace StackOverflowExample
{
   public partial class MonthViewCalendar : UserControl
   {
      ...
   }
}

Я добавил ссылку на сборку в узле References в Solution Explorer , но новый элемент управления не появился в моем Toolbox .

Как сделать так, чтобы элемент управления отображался на панели инструментов, чтобы я мог поместить его в форму?


Обновление 1 :

Я пытался собрать сборку, пока параметр Visual Studio:

Инструменты -> Параметры ... -> Конструктор Windows Forms -> AutoToolboxPopulate = true

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

Примечание: я как-то по ошибке написал "... то есть не в сборке dll ...". Я не знаю, как мне удалось написать это, когда конкретно это в сборке DLL. Элементы управления волшебным образом появляются, когда они находятся в одном проекте, но не сейчас, когда это другой проект / решение.


Обновление 2: Ответ

  1. Щелкните правой кнопкой мыши на Toolbox
  2. Выбрать Выбрать элементы ...
  3. .NET Framework Компоненты вкладка
  4. Выбрать Просмотр ...
  5. Найдите файл dll сборки, который содержит элемент управления, и выберите Открыть

    Примечание. Элементы управления в сборке будут автоматически добавлены в список компонентов .NET Framework.

  6. Отметьте каждый элемент управления, который вы хотите отобразить на панели инструментов
  7. Выбрать ОК

Ответы [ 5 ]

4 голосов
/ 24 октября 2008

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

Если этого не произойдет, вы также можете добавить свой элемент управления, щелкнув правой кнопкой мыши на наборе инструментов, выбрав Выберите Элементы , затем в .NET Framework Components просматривая вашу сборку, добавив его, убедитесь, что ваш контроль проверен.

1 голос
/ 16 мая 2011

Что я заметил, так это то, что пользовательские элементы управления и компоненты добавляются в Toolbox автоматически только в vs2005, когда ваш проект (содержащий элементы управления / компоненты) находится в той же папке, что и ваше решение. Когда этот проект находится в подпапке, vs2005 не будет добавлять элементы управления и компоненты в Toolbox.

0 голосов
/ 24 октября 2008

Я наткнулся на некоторые проблемы с этим. В конце концов, просто перестроить и повторно ссылка будет работать. Я предпочел наследовать от UserControl. Это сделало мою жизнь проще;)

Если, например, вы хотите создать метку с закругленной границей, сделайте что-то вроде этого:

using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace YourUIControls
{
    [DefaultProperty("TextString")]
    [DefaultEvent("TextClick")]
    public partial class RoundedLabel : UserControl
    {
         public RoundedLabel()
         {
             InitializeComponent();
         }
         protected override void OnPaint(PaintEventArgs e)
         {
             //Draw your label here…
         }
     }
}

Скомпилируйте и добавьте ссылку на вывод. Вы сможете перетащить это на панель инструментов, а затем в конструктор.

0 голосов
/ 24 октября 2008

Вам необходимо создать проект, содержащий созданный вами элемент управления, и убедиться, что для набора инструментов для перестройки заданы параметры. Если вы не изменили его по умолчанию, он должен работать; в противном случае перейдите к Сервис -> Параметры ... и выберите группу Дизайнер Windows Forms. Убедитесь, что для параметра AutoToolboxPopulate установлено значение true .

Вам не нужно ToolboxItemAttribute, чтобы он работал. Если предоставляющая сборка находится в том же решении, что и потребляющая сборка, она должна появиться в наборе инструментов. Если предоставленная сборка не является частью решения, вы можете вручную добавить сборку в панель инструментов, выбрав ** Выбрать элементы ... * в контекстном меню панели инструментов и добавив вашу сборку напрямую. Если вы хотите, чтобы панель инструментов автоматически их подбирала, вам нужно будет использовать ToolboxItemAttribute.

0 голосов
/ 24 октября 2008

Добавьте атрибут ToolboxAttribute в свой класс.

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