1

对于 WinForms 控件,我想将某些设置移动到子对象中。其中一个是包含所有 UI 字符串的自定义类,另一个是 OpenFileDialog:

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

这会将子对象添加到设计器,并允许编辑其属性(例如标题、默认扩展名、过滤器)。但是,更改不会添加到InitalizeComponent方法中,因此会丢失。

是否可以使该属性在InitializeComponent方法中“持续存在”?

4

1 回答 1

5

告诉设计者序列化对象本身:

  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public OpenFileDialog DialogOpen {
    get { return m_dlgOpen; }
  }
于 2009-03-02T22:37:55.763 回答