日期:2014-05-17  浏览次数:20955 次

一个自定义属性的问题,帮忙解答一下,谢谢
建立一个CUSTOM CONTROL,代码如下:
public partial class save : Button
  {
  public save()
  {
  InitializeComponent();
   
  }
  public enum MyEnum
  {
  条形图, 曲线
  }

  private MyEnum _Caption;
  [CategoryAttribute("自定义属性"),
  DescriptionAttribute("标题"),
  DefaultValue("曲线")]

  public MyEnum Caption
  {
  set {
  if (value.ToString() == "条形图")
  {
  this.Text = "条形图";
  }
  if (value.ToString() == "曲线")
  {
  this.Text = "曲线";
  }
  _Caption = value; }
  get {
  return _Caption; }
  }

要求实现的功能是,在WINFORM设计时,这个按钮的Caption属性如果选择了“条形图”,那么button的Text属性更改为条形图,当设置曲线的时候,更改button的Text属性为曲线。上面代码我测试过,可以实现我的功能,但是这种写法是否符合标准。在网上找了很久都没找到,另外value这个枚举类型,我直接通过ToString()转换应该没有问题吧。不好意思,刚搞这个,不太懂。帮忙解答,谢谢

------解决方案--------------------
上面的有点小错误,应该是 ==

一般判断枚举是这样

if(value==MyEnum.条形图)
this.Text="条形图";
else if(value==MyEnum.曲线)
this.Text="曲线";

但你这个可以直接
this.Text=value.ToString();