对于WinForms控件,我想将某些设置移动到子对象中.其中一个是包含所有UI字符串的自定义类,另一个是OpenFileDialog:
class MyControl: Control { // ... private OpenFileDialog m_dlgOpen = new OpenFileDialog(); public OpenFileDialog DialogOpen { get { return m_dlgOpen; } } }
这会将子对象添加到设计器,并允许编辑其属性(例如标题,默认扩展名,过滤器).但是,更改是添加到InitalizeComponent
方法中的,因此它们会丢失.
是否可以在InitializeComponent
方法中"保持"此属性?
告诉设计者序列化对象本身:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public OpenFileDialog DialogOpen { get { return m_dlgOpen; } }