避免为对象的属性生成代码

时间:2011-05-17 02:26:17

标签: c# .net winforms

我对属性使用DefaultValue,因此当我在设计器中创建具有此属性的控件时,它不会在设计器中生成。但是,对于具有数据类型的属性不标准,例如:Image,如何使用DefaultValue。感谢。

这是一个示例代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;

namespace DemoChart
{
  public class MyControl : Control
  {
    private Image m_Img = DemoChart.Properties.Resources.link;

    [DefaultValue("DemoChart.Properties.Resources.link")]
    public Image Img
    {
      get { return m_Img; }
      set { m_Img = value; }
    }

    public MyControl()
    {
    }
  }
}

注意:DemoChart.Properties.Resources.link是我在项目中添加的Image资源。

我创建一个名为Form1的表单,将MyControl拖到此表单,它的名称是myControl1。我打开Form1.designer.cs来查看生成的代码,我仍然看到myControl1的Img属性。为什么?我使用DefaultValue但它没有效果。请帮我。感谢。

1 个答案:

答案 0 :(得分:3)

如果您的媒体资源属性类型复杂,那么您应该使用ShouldSerialize and Reset methods