第二个问题:
定义一个枚举型的变量,例如:
public vType VType
{
get{return _vType;}
set{_vType = value;}
} public enum vType
{
None,
OnlyDate,
OnlyNumber,
OnlyDecimal
}

解决方案 »

  1.   

    1、从Control继承,并加入Width和Height属性;
    2、将这5个值定义为一个枚举,例如:
    public enum MyEnum{EnumValue1,EnumValue2,EnumValue3,EnumValue4,EnumValue5}然后这样定义你的控件的属性:
    private MyEnum myen;public MyEnum MyProperty{
    get{return myen;}
    set{myen=value;}
    }
      

  2.   

    谢谢两位,第2各问题解决了
    问题1:如果采用继承Control并加入Width和Height属性的方式,在设计时不能拖动控件调整大小,而继承WebControl却可以,但是我不想要WebControl中其他属性
      

  3.   

    关于第一题, 比如继承panel, 输出也是 panel, 里面的 什么 style 属性一大堆也会继承过来的.
    除非重写它的输出了(render)
      

  4.   

    继承WebControl的Width和Height,只是让其他属性不在设计时的属性窗口显示能不能办到?
    我想要的效果就是设计时控件可以拖动设置大小,属性窗口中不要多余的属性。
      

  5.   

    问题2产生的新问题:如果我要在下拉列表中显示的数字怎么办?如下会报错
    public enum _LineNum{1,2,4,5,10,20,25,50,100}
      

  6.   

    public class YourControl : WebControl
    {    [Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        new protected Font Font
        {
            get{return base.Font;}
        }}
    第二个问题你需要实现一个TypeConverter例如
    [TypeConverter(typeof(YPTC))]
    pubilc string YourProperty
    {
    get
    {
    return _s;
    }
    set
    {
    _s=value;
    }
    }public class YPTC : TypeConverter
    {
    //这里重写GetStandardValuesSupported返回true
    //重写GetStandardValuesExclusive返回false
    //重写GetStandardValues返回值的集合.
    }
      

  7.   

    To:Lostinet(『 迷失网络 』) [Browsable(false),DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public new Font Font
    {
        get{return Font;}
    }改了一下就可以让属性窗口不显示Font了,但是在代码中还是有该属性,应该怎么办?
      

  8.   

    如果是这样的话你应该从Control继承,并且自己为此控件做一个自定义设计器,在设置器中的属性AllowResize决定了是否可以调整大小,对于你的数字属性,也可以为此属性写一个类型转换器。
      

  9.   

    try:
    从WebControl继承你的控件,然后重写Font属性:
    [Browsable(false)]
    public override FontInfo Font{
    get{return null;}
    }Browsable(false)属性可以使Font属性不在属性窗口中显示。