Я пытаюсь создать свой собственный файл UserControl
для WinForms
приложений. Я использовал для создания настраиваемого свойства enum, который отлично работает и создает один CheckBox
, когда пользователь меняет значение свойства во время разработки.UserControl - заданное значение для свойства
private SearchOptionsEnum _searchAreas;
//private List<bool> _searchAreas = new List<bool>();
[Description(""), Category("GostcompSettings")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Editor(typeof(Utils.FlagEnumUIEditor), typeof(UITypeEditor))]
public SearchOptionsEnum SearchAreas
//public List<bool> SearchAreas
{
get
{
return _searchAreas;
}
set
{
_searchAreasChceckBoxList.Clear();
pPanelWithCheckboxies.Controls.Clear();
int x = 10;
int y = 10;
CheckBox _tempCheck = new CheckBox();
_tempCheck.Checked = true;
_tempCheck.Location = new Point(x, y);
_searchAreasChceckBoxList.Add(_tempCheck);
pPanelWithCheckboxies.Controls.Add(_tempCheck);
MessageBox.Show("zmiana");
_searchAreas = value;
}
}
Я использую редактор пользовательских значений UITypeEditor в коде, и это работает прекрасно.
Я получаю MessageBox во время разработки и CheckBox. Проблема в том, что я меняю SearchOptionsEnum на List<bool>
и редактор по умолчанию Boolean Collection Editor
.
Тогда CheckBox не появляется, и даже debbuger точки останова положить в наборе собственности не останавливается там ...
Где проблема?
Кроме того: когда я редактирую значения bool в редакторе, он запоминает и сохраняет значения. Даже в следующих значениях параметров отладки, заданных ранее, сохраняются.
EDIT
public partial class StudySearchAndView : UserControl
{
private List<CheckBox> _searchAreasChceckBoxList = new List<CheckBox>();
private SearchOptionsEnum _searchAreas;
//private List<bool> _searchAreas = new List<bool>();
[Description(""), Category("GostcompSettings")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Editor(typeof(Utils.FlagEnumUIEditor), typeof(UITypeEditor))]
public SearchOptionsEnum SearchAreas
//public List<bool> SearchAreas
{
get
{
return _searchAreas;
}
set
{
_searchAreasChceckBoxList.Clear();
pPanelWithCheckboxies.Controls.Clear();
int x = 10;
int y = 10;
CheckBox _tempCheck = new CheckBox();
_tempCheck.Checked = true;
_tempCheck.Location = new Point(x, y);
_searchAreasChceckBoxList.Add(_tempCheck);
pPanelWithCheckboxies.Controls.Add(_tempCheck);
MessageBox.Show("zmiana");
_searchAreas = value;
}
}
}
pPanelWithCheckboxies
только панель упала на UserControl.
Можете ли вы показать больше кода для лучшего понимания? –
Я попробую BooleanCollectionEditor UITypeEditor позже, возможно, некоторые ошибки там (я думаю). Тем не менее, если вы редактируете какое-то значение на странице свойств режима проектирования, оно использовалось для запоминания, записывая это значение в метод InitializeComponent(). Или я не понимаю ваш последний абзац? –
@ JC да, как вы говорите –