Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Сбрасывается свойство контролла


Автор: Kolovorot 24.7.2012, 12:46
Создал UserControl - MyControl1. На него кинул CheckBox; Выставил его свойство Visible = false; CheckBox.Modifier = private. Доступ к CheckBox'у реализован с помощью свойств:
Код

        /// <summary>
        /// Возвращает CheckBox
        /// </summary>
        [Category("Controls")]
        [Description("CheckBox(по умолчанию CheckBox.Visible = false)")]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public CheckBox CheckBox
        {
            get
            {
                return checkBox1;
            }
        }

Кидаю MyControl1 на другой контрол - MyControl2. В дизайнер другого контрола выставляю CheckBox.Visible в True. Но он в результате CheckBox не отображается и после дебага CheckBox.Visible сбрасывается в false.

Причина в том, что в InitializeComponent контрола MyControl2 нет строки вида
Код

           this.MyControl.CheckBox.Visible = true.

Видимо значение this.MyControl.CheckBox.Visible = true он считает дефолтным и VS не прописывает его в MyControl2.InitializeComponent.
Как можно решить эту проблему? Естественно я могу в конструкторе MyControl2 прописать this.MyControl.CheckBox.Visible = true, но хотелось без этого.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)