C# 在InitializeComponent中序列化ISupportInitialize代码有哪些要求。网

C# 在InitializeComponent中序列化ISupportInitialize代码有哪些要求。网,c#,.net,vb.net,winforms,C#,.net,Vb.net,Winforms,我需要向PictureBox控件的EndInit方法添加一些代码,但不幸的是,它是私有的,从我收集的信息来看,我无法对其进行阴影处理并调用base-至少在中不能 我可以做的是向图片框类添加一个虚拟属性。虚拟属性的类型只是一个只实现ISupportInitialize的类。但是,这不起作用,我需要伪类从控件继承 这是最低要求吗?正如您所怀疑的,您需要创建一个proeprity,其中包含一个实现ISupportInitialize的伪类 然后,按如下方式公开属性: [EditorBrowsable(

我需要向PictureBox控件的EndInit方法添加一些代码,但不幸的是,它是私有的,从我收集的信息来看,我无法对其进行阴影处理并调用base-至少在中不能

我可以做的是向图片框类添加一个虚拟属性。虚拟属性的类型只是一个只实现
ISupportInitialize
的类。但是,这不起作用,我需要伪类从控件继承


这是最低要求吗?

正如您所怀疑的,您需要创建一个proeprity,其中包含一个实现
ISupportInitialize的伪类

然后,按如下方式公开属性:

[EditorBrowsable(EditorBrowsableState.Never)]  //Hide from IntelliSense (outside your solution)
[Browsable(false)]   //Hide from Properties window
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public MyDummyClass Initializer { get; private set; }
指定
DesignerSerializationVisibility.Content
将导致设计器设置对象的属性而不是对象本身,并将导致它调用
BeginInit
/
EndInit


显然,您应该在构造函数中实例化该类。

正如您所怀疑的,您需要创建一个proeprty,其中包含一个实现
ISupportInitialize的伪类

然后,按如下方式公开属性:

[EditorBrowsable(EditorBrowsableState.Never)]  //Hide from IntelliSense (outside your solution)
[Browsable(false)]   //Hide from Properties window
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public MyDummyClass Initializer { get; private set; }
指定
DesignerSerializationVisibility.Content
将导致设计器设置对象的属性而不是对象本身,并将导致它调用
BeginInit
/
EndInit


显然,您应该在构造函数中实例化该类。

是否创建继承
PictureBox
的控件?是否创建继承
PictureBox
的控件?我已经添加了DesignerSerializationVisibility.Content属性,但我仍然需要从控件派生虚拟类。我将在c#中尝试代码,看看是否得到不同的结果。我在c#中测试了它,并且需要从控件继承虚拟类。这似乎有点笨手笨脚,但可能我不需要从控件继承,而是实现控件实现的众多接口之一。我非常确定,您需要继承的只是
组件
。我已经了解了IComponent,这对我来说就够了。为指针干杯。只需添加DesignerSerializationVisibility.Content属性,除非将虚拟属性设置为只读。我已添加DesignerSerializationVisibility.Content属性,但我仍然需要从控件派生虚拟类。我将在c#中尝试代码,看看是否得到不同的结果。我在c#中测试了它,并且需要从控件继承虚拟类。这似乎有点笨手笨脚,但可能我不需要从控件继承,而是实现控件实现的众多接口之一。我非常确定,您需要继承的只是
组件
。我已经了解了IComponent,这对我来说就够了。为指针干杯。只需添加DesignerSerializationVisibility.Content属性,除非将虚拟属性设置为只读。