比如Visible 属性下拉有True . false 是如何实现的..给点代码参考一下

解决方案 »

  1.   

    首先继承系统控件
        Public Class TextBoxDecimal
            Inherits System.Windows.Forms.TextBox
            Implements System.ComponentModel.ISupportInitialize然后写Property方法就可以了
            Private _allowBlank As Boolean = False
            <Category("追加")> _
            Public Property AllowBlank() As Boolean
                Get
                    Return Me._allowBlank
                End Get
                Set(ByVal Value As Boolean)
                    Me._allowBlank = Value
                End Set
            End Property
      

  2.   

    是的,我要的是那个属性是如何加载出来的。
    我写了个控件,要配置属性而那个属性是从XML读取过来的,想通过下拉来实现。
      

  3.   


    public class Define : System.Windows.Forms.UserControl
    {
       private int a;
       
       public Define() : base()
       {
          this.a = -1;
       }
       
       //自定义属性...
       public Int32 A
       {
          get
          {
             return this.a;
          }
          set
          {
             this.a = value;
          }
       }
    }
      

  4.   

    如果要下拉框有True或False...就将属性类型改为Boolean就可以了...
      

  5.   

    上面的好像不行吧。 好像要继承UITypeEditor的吧。public class iCOM:UITypeEditor
            {
                 public override object  EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
                {
                   return value;
                }             public override UITypeEditorEditStyle  GetEditStyle(ITypeDescriptorContext context)
                {
                   return UITypeEditorEditStyle.DropDown;//显示下拉。            }        }
      

  6.   

    是要写一个自定义类型的PropertyGrid的编辑界面吧,
    在属性上(或者属性的类型上)添加Editor特性,例如:[Editor("你的UITypeEditor类型的AssemblyQualifiedName", typeof(UITypeEditor))]
    再去实现UITypeEditor(不会的话就随便反编译一个System.Drawing.Design.dll或者System.Windows.Forms.Design.dll中的类抄一下就行了)
      

  7.   

    bool visible;
    public bool Visible
    {
    get
    {
    return visible;
    }
    set
    {
    visible = value;
    }
    }
      

  8.   

    上面的
    .FramWork 自带的bool类型的。 
    如果下拉的是,比如Commbox 下有AA,BB 节点属性,就配置不了
    反编译一个System.Drawing.Design.dll 好像也看不到东西 。
      

  9.   

    定义一个枚举类型就好了...
    public enum TTT : int
    {
       AA = 1,
       BB = 2
    }public class Define : System.Windows.Forms.UserControl
    {
       private TTT a;
       
       public Define() : base()
       {
          this.a = TTT.AA;
       }
       
       //自定义属性...
       public TTT A
       {
          get
          {
             return this.a;
          }
          set
          {
             this.a = value;
          }
       }
    }
    这样就好了, 如果是复杂的类型...就要自己写类型转换器...^o^