.net控件开发之类型转换器

向“属性”窗口提供标准值列表的类型转换器

像省份这样的属性,为了方便用户填写,我们往往做成下拉框形式,一个省份里面又有城市,我们往往列出一部分,如果其中数据不符合用户要求的话,用户还可以自己输入,使用类型转换器转换器也可以做到这一点.

实现这一效果你需要重写以下方法,我们添加一个属性 喜欢的游戏的名称
因为属性为String类型,可以直接从StringConverter 派生

示例三
  public   class  GameConverter : StringConverter 

    
{
        
//返回此对象是否支持可以从列表中选取的标准值集
        public override bool GetStandardValuesSupported(
                           ITypeDescriptorContext context)
        
{
            
return true;
        }

       
//返回下拉框集合类
       public override StandardValuesCollection
                     GetStandardValues(ITypeDescriptorContext context)
       
{
           
return new StandardValuesCollection(new string[]{"传奇"
                                                     
"魔兽世界"
                                                     
"龙与地下城"}
);
       }

       
//标准值的集合是否为独占列表
       
//默认为flase,为true则表示无法修改列表值
       public override bool GetStandardValuesExclusive(
                           ITypeDescriptorContext context)
       
{
           
return false;
       }

    }


然后与相关属性关联起来

[TypeConverter( typeof (GameConverter))]
        [Description(
" 喜欢的游戏 " )]
        
public  String Game
        
{
            
get
            
{
                
return game;
            }

            
set
            
{
                game 
= value;
            }

        }

好了,.下面我们看一下效果,如下图,你可以选择下拉框的值,也可以自己手动输入,跟枚举类型很相似,但枚举类型无法自己修改值.

你可能感兴趣的:(.net)