#c# #visual-studio-2008 #properties
#c# #visual-studio-2008 #свойства
Вопрос:
У меня есть пользовательский элемент управления, который содержит поле со списком. Я хочу иметь возможность редактировать свойство элементов для поля со списком, но я не совсем уверен, как это сделать. Я попытался добавить свойство элементов в свой класс пользовательского управления, но я не уверен, какое значение возвращается при установке свойства в меню свойств Visual studio. У меня есть настройка свойства следующим образом:
[Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design",
"System.Drawing.Design.UITypeEditor, System.Drawing")]
public ComboBox.ObjectCollection Items
{
get
{
return this.comboBox.Items;
}
set
{
this.comboBox.Items.Add(value);
}
}
Ответ №1:
Оберните свойство элементов списка вашего UserControl в свойство, подобное этому:
[Description("The items in the UserControl's ComboBox."),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
Editor("System.Windows.Forms.Design.StringCollectionEditor, System.Design", typeof(System.Drawing.Design.UITypeEditor))]
public System.Windows.Forms.ComboBox.ObjectCollection MyItems {
get {
return comboBox1.Items;
}
}
Атрибут EditorAttribute в свойстве указывает элемент пользовательского интерфейса, используемый для изменения свойства в конструкторе.
Комментарии:
1. это работает только с заданными вами элементами в коде? Я попытался добавить элементы в меню свойств представления Visual Studio designer, и это не сработало. В списке со списком нет элементов, когда я запускаю приложение.
2. @MBU отредактировал мой ответ — нашел, как вы можете сделать то, что вам нужно сделать. Очень удобно.
Ответ №2:
Попробуйте добавить два метода для добавления и удаления ComboBox
элементов:
public void AddItem(Object item)
{
this.comboBox.Items.Add(item);
}
public void RemoveItem(Object item)
{
this.comboBox.Items.Remove(item);
}