Пользовательский Элемент Управления-Пользовательские Свойства


Я разработал пользовательский элемент управления в Visual Studio (WinForms C#) и есть вопрос.

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

Как я могу иметь свои собственные свойства для моего пользовательского элемента управления? Например:

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

3 58

3 ответа:

Вы делаете это с помощью атрибутов свойства, как это:

[Description("Test text displayed in the textbox"),Category("Data")] 
public string Text {
  get { return myInnerTextBox.Text; }
  set { myInnerTextBox.Text = value; }
}

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

Это очень просто, просто добавить свойство:

public string Value {
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

использование свойства Text немного сложнее, класс UserControl намеренно скрывает его. Вам нужно будет переопределить атрибуты:

[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public override string Text {
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

просто добавить свойства в пользовательский элемент управления.

Вы можете добавить [Category("MyCategory")] и [Description("A property that controls the wossname")] атрибуты, чтобы сделать его лучше, но пока это общественные свойство он должен отображаться в панели свойств.