Как создавать новые компоненты в Visual Studio 2010 - PullRequest
0 голосов
/ 14 января 2012

Подскажите, как создать новый визуальный компонент для .net 4.0 в Visual Studio 2010, У меня есть книга о создании компонентов на русском языке ( Павел Агуров -Разработка Компонентов в MS Visual Studio 2005/2008 ), но методы в этой книге охватывают VS 2005 и 2008. И методы дают ошибки в VS 2010 .

EDIT: Вот мой код

public partial class exComboBox : ComboBox
{
    /*public exComboBox()
    {
        InitializeComponent();
    }*/
    private System.Collections.Specialized.StringCollection _itemValues = new System.Collections.Specialized.StringCollection();

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    [Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Editor","System.Drawing.Design.UITypeEditor,System.Drawing")]
    public System.Collections.Specialized.StringCollection ItemValues
    {
        get
        {
            return _itemValues;
        }
        set
        {
            _itemValues = value;
        }
    }
    public object SelectedItemValue
    {
        get
        {
            return _itemValues[SelectedIndex];
        }
    }
}

И когда я пытаюсь добавить этот компонент в новую форму и добавлять значения для ItemValues, он говорит:
Конструктор типа System.String не найден.

Ответы [ 3 ]

1 голос
/ 14 января 2012

Щелкните правой кнопкой мыши свой проект, выберите добавление нового элемента.Перейдите в раздел C # и выберите User Control.

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

Если вы хотите извлечь его из поля со списком, просто отредактируйте созданный класс и измените его базовый класс с UserControl на поле со списком.Вам также может понадобиться изменить конструктор верхнего вызова из трех основных классов вместо того, чтобы выполнять InitialiseComponent для себя.

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

0 голосов
/ 07 марта 2014

Если вы говорите о Winforms ...

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

Если вы хотите простой способ повторить какой-то шаблон для ComboBox, я предлагаю вам взглянуть на IExtenderProvider интерфейс. Вы можете реализовать его в классе Component, который вы можете перетащить в область дизайна. В этом компоненте вы можете объявить свойства, которые будут присоединены в качестве дополнительных свойств к любым комбинированным спискам (или ко всему прочему, все зависит от вас).

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

Чтобы узнать больше о IExtenderProvider, зайдите здесь .

0 голосов
/ 14 января 2012

Создайте приложение Windows, а затем перейдите в меню «Добавить новый элемент», щелкнув правой кнопкой мыши «Проект» в обозревателе решений, и вы увидите там компонент AFAIR.

...