none
关于image的序列化 RRS feed

  • 问题

  • 最近开发了一个图形表示控件,基类采用的是panel
    主要的属性是图形对象Cellection, 针对这个属性使用了自定义的designer, 每一个图形对象都可以指定图片进行背景填充, 因此写了这个控件的Serializer,每个图形对象都是在这个Serializer中被序列化, 若指定图片,这里调用MyBase.SerializeToResourceExpression(manager, img)进行序列化, 图片将被保存在设计窗体的嵌入资源中。
    在Form的Designer中序列化的代码举例如下:
    CimsDrawing2_Pattern1_2_Ellipse.TextureImage = CType(resources.GetObject("resource1"), System.Drawing.Bitmap)

    但是现在遇到了个比较棘手的问题, 当这个控件位于其他容器控件中的时候, 比如在窗体设计的时候, ctrl + c这个控件,然后再ctrl+v, 那么在Designer中产生了如下的错误代码
    CimsDrawing3_Pattern1_2_Ellipse.TextureImage = CType(resources.GetObject("CimsDrawing2.Controls"), System.Windows.Forms.Control)

    对于控件的Serializer, 因为参数类型已经指定为image, 为什么这种情况下,没有报错,序列化出来的代码却不正确的原因,以及该如何解决现在真是没思路,请各路大神帮忙看看
    2014年9月29日 8:52

答案

  • 你好:

    你的问题比较特殊,如果没有相关经验的话很难给你一个好的解决方案。我建议你在Windows Forms Designer英文论坛提问,最好附上具体的代码和详细的描述信息方便别人重现你的问题。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年9月30日 2:54
    版主
  • 【正确】

    CimsDrawing2_Pattern1_2_Ellipse.TextureImage = 

    CType(resources.GetObject("resource1"), System.Drawing.Bitmap)

    【错误】

    CimsDrawing3_Pattern1_2_Ellipse.TextureImage = 

    CType(resources.GetObject("CimsDrawing2.Controls"), System.Windows.Forms.Control)

    Image是一个类,和Control没有关系。


    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2014年10月2日 3:16
    版主

全部回复