Создание ввода свойств пользовательского элемента управления, например, многострочного текстового поля - PullRequest
1 голос
/ 08 ноября 2010

Скажем, у меня есть атрибут "Адрес", как я могу сделать так, чтобы он вводился в окне свойств дизайнера форм, как в текстовом поле, например:

Ответы [ 2 ]

6 голосов
/ 08 ноября 2010

Укажите свойство Address с помощью EditorAttribute , ссылающегося на MultilineStringEditor класс:

using System.ComponentModel;
using System.Drawing.Design;

[Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
    typeof(UITypeEditor))]
public string Address
{
    get;
    set;
}
1 голос
/ 08 ноября 2010

Это происходит через "дизайнера".Для System.Windows.Forms.TextBox этот конструктор имеет вид:

[Designer("System.Windows.Forms.Design.TextBoxDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), SRDescription("DescriptionTextBox"), ComVisible(true), ClassInterface(ClassInterfaceType.AutoDispatch)]

Если вы хотите просмотреть его исходный код, откройте .NET Reflector, Open Cache ... System.Design, перейдите (или выполните поиск) к System.Windows.Forms.Design.TextBoxDesigner.

ОБНОВЛЕНИЕ: С 2014 года .NET Core является открытым исходным кодом, посетите официальный сайт

.
...