Подтвердить что ты не робот

Пользовательский контроль - пользовательские свойства

Я разработал User Control в Visual Studio (WinForms С#) и задал вопрос.

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

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

Мой пользовательский элемент управления содержит TextBox, и я хотел бы, чтобы пользователь мог изменить значение этого TextBox через свойство "Текст" или "Значение" в свойствах в Design-Time.

4b9b3361

Ответ 1

Вы делаете это через атрибуты свойств, например:

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

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

Ответ 2

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

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; }
}

Ответ 3

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

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