Пользовательский контроль - пользовательские свойства
Я разработал User Control в Visual Studio (WinForms С#) и задал вопрос.
Мне нужен пользователь User Control, чтобы иметь возможность изменять определенные строковые значения, и я хотел бы, чтобы они могли добавлять пользовательский элемент управления в свою форму и нажимать на него, чтобы открыть панель свойств, где пользовательский пользовательский контроль будут отображаться свойства.
Как я могу использовать свои собственные пользовательские свойства для моего пользовательского элемента управления? Например:
Мой пользовательский элемент управления содержит TextBox, и я хотел бы, чтобы пользователь мог изменить значение этого TextBox через свойство "Текст" или "Значение" в свойствах в Design-Time.
Ответы
Ответ 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")]
, чтобы сделать его более приятным, но пока это общедоступное свойство должно появиться на панели свойств.