Winforms Designer: изменение (и сохранение) свойств в подобъектах - PullRequest
1 голос
/ 02 марта 2009

Для элемента управления WinForms я хотел бы переместить определенные настройки в подобъект. Один из них - это пользовательский класс, содержащий все строки пользовательского интерфейса, другой - OpenFileDialog:

class MyControl: Control
{
  // ...
  private OpenFileDialog m_dlgOpen = new OpenFileDialog();
  public OpenFileDialog DialogOpen
  {
     get { return m_dlgOpen; }
  }
}

Это добавляет подобъект к конструктору и позволяет редактировать его свойства (например, заголовок, расширение по умолчанию, фильтр). Однако изменения не добавляются в метод InitalizeComponent, поэтому они теряются.

Можно ли сделать это свойство "постоянным" в методе InitializeComponent?

1 Ответ

5 голосов
/ 03 марта 2009

Скажите конструктору, чтобы он сериализовал сам объект:

  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public OpenFileDialog DialogOpen {
    get { return m_dlgOpen; }
  }
...