У меня есть пользовательский элемент управления, который наследуется от Button
. Этот пользовательский элемент управления предоставляется другим пользовательским элементом управления, который наследуется от Panel
Когда я добавляю свою пользовательскую панель в конструктор, я могу установить свойства для своей пользовательской кнопки. Однако, если я установлю, например, свойство Visible
, конструктор не будет обновлен. Поэтому при запуске формы свойство Visible
не изменяется.
В своем классе пользовательской панели я добавил атрибут [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
в свойство пользовательского элемента управления, но это не работает.
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public PanelButton ButtonSave
{
get { return _btnSave; } // btnSave is a custom control which inherits from Button
}
Почему файл designer.cs не обновляется?
EDIT:
Только для уточнения. Я не наследую от UserControl
, я наследую от Button
:
public abstract class BaseButton : Button
{
#region Member variables
private ButtonPanel _panel;
#endregion
/*rest of the code*/
}
Полная картина выглядит так:
public partial class ButtonPanel : UserControl
(пользовательский элемент управления и имеет собственный designer.cs)
public abstract class BaseButton : Button
(служит базовой кнопкой. Используется для добавления кнопок на кнопку панели)
public class PanelButton : BaseButton
(используется в коде клиента для добавления кнопок)
РЕДАКТИРОВАТЬ II:
Я думаю, что нашел проблему. При инициализации кнопок я установил для свойства Visible
значение false, например:
// initialize button
private PanelButton _btnSave = new PanelButton(Properties.Resources.disk_blue) {Visible = false};
// Property for button
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public PanelButton ButtonSave
{
get { return _btnSave; }
set { _btnSave = value; }
}
Когда в конструкторе изменяется свойство ButtonSave
Visible
, оно ничего не делает с ним. Когда я оставляю {Visible = false};
, кнопка всегда видна, независимо от того, является ли свойство ложным или истинным, не имеет значения.
Как я могу использовать конструктор для установки свойства Visible?