改变 propertygrid 控件的编辑风格(4)——加入选择列表

转载 2007年09月29日 09:44:00

适用场合:

限制选择输入

 

 

步骤一:定义从uitypeeditor 继承的抽象类:comboboxitemtypeconvert。示例如下:

using system;

using system.collections;

using system.componentmodel;

 

 

namespace blog.csdn.net.zhangyuk

{

     /// imstypeconvert 的摘要说明。

     /// </summary>

     public abstract class comboboxitemtypeconvert : typeconverter

     {

         public hashtable _hash = null;

 

 

         public comboboxitemtypeconvert()

         {

              _hash = new hashtable();

              getconverthash();

         }

 

 

         public abstract void getconverthash();

 

 

         public override bool getstandardvaluessupported( itypedescriptorcontext context )

         {

              return true;

         }

 

 

         public override standardvaluescollection getstandardvalues(

itypedescriptorcontext context)

         {

              int [] ids = new int [ _hash.values.count ];

 

 

              int i=0;

              foreach (dictionaryentry myde in _hash)

              {

                   ids[i++] = (int)(myde.key);

              }

 

 

              return new standardvaluescollection( ids );

         }

 

         public override bool canconvertfrom( itypedescriptorcontext context, type sourcetype)

         {

              if (sourcetype == typeof(string))

              {

                   return true;

              }

              return base.canconvertfrom(context, sourcetype);

         }

 

 

         public override object convertfrom(

itypedescriptorcontext context, 

system.globalization.cultureinfo culture,

object v )

         {

              if (v is string)

              {

                   foreach (dictionaryentry myde in _hash)

                   {

                       if( myde.value.equals((v.tostring())) )

                            return myde.key;

                   }

              }

              return base.convertfrom(context, culture, v);

         }

 

 

         public override object convertto( 

itypedescriptorcontext context, 

system.globalization.cultureinfo culture, object v ,

type destinationtype)

         { 

              if (destinationtype == typeof(string))

              {

                   foreach (dictionaryentry myde in _hash)

                   {

                       if( myde.key.equals(v) )

                            return myde.value.tostring();

                   }

                   return "";

              }

              return base.convertto(context, culture, v, destinationtype);

         }

 

 

         public override bool getstandardvaluesexclusive(

              itypedescriptorcontext context)

         {

              return false;

         }       

     }

}

 

 

步骤二:定义 comboboxitemtypeconvert 的派生类,派生类中实现父类的抽象方法:

public abstract void getconverthash();

示例如下:

 

 

using system;

using system.collections;

using system.componentmodel;

 

 

namespace blog.csdn.net.zhangyuk

{

     public class propertygridboolitem : comboboxitemtypeconvert

     {

         public override void getconverthash()

         {

              _hash.add(0,"是");

              _hash.add(1,"否");

         }

     }

 

 

     public class propertygridcomboboxitem : comboboxitemtypeconvert

     {

         public override void getconverthash()

         {

              _hash.add(0,"炒肝");

              _hash.add(1,"豆汁");

              _hash.add(2,"灌肠");

         }

     }

}

 

 

步骤三:编辑属性类,指定编辑属性。示例如下:

namespace blog.csdn.net.zhangyuk

{

         public class someproperties

     {

         private string _finished_time   = "";

                   ……

         // 布尔

         bool _bool = true;

         [

              description("布尔"),

              category("属性"),

              typeconverter(typeof( propertygridboolitem ))

         ]

         public int 布尔

         {

              get { return _bool == true ? 0 : 1; }

              set { _bool = (value == 0 ? true : false); }

         }

 

 

         // 选择列表

         int _comboboxitems = 0;

         [

              description("选择列表"),

              category("属性"),

              typeconverter(typeof( propertygridcomboboxitem ))

         ]

         public int 选择列表

         {

              get { return _comboboxitems;  }

              set { _comboboxitems = value; }

         }

         ……

         }

}

 

 

步骤四:设置propertygrid的属性对象。示例如下:

         private void form1_load(object sender, system.eventargs e)

         {

            this.propertygrid1.selectedobject = new someproperties();

         } 

改变 PropertyGrid 控件的编辑风格(4)——加入选择列表

改变 PropertyGrid 控件的编辑风格(4)——加入选择列表 张昱e-zhangyu@vip.sina.com效果:适用场合:限制选择输入 步骤一:定义从UITypeEditor 继承的抽象类...
  • zhangyuk
  • zhangyuk
  • 2005年08月09日 15:00
  • 2389

改变 PropertyGrid 控件的编辑风格(1)——加入日期控件

改变 PropertyGrid 控件的编辑风格(1)——加入日期控件 张昱e-zhangyu@vip.sina.com 效果:适用场合:编辑日期类型数据 步骤一:定义从UITypeEditor 派生的...
  • zhangyuk
  • zhangyuk
  • 2005年08月09日 14:47
  • 2659

VS2012下实现CMFCPropertyGridCtrl 内添加日期时间控件

上图为实现的效果图。          首先自定义一个类CMFCPropertyGridDateTimeProperty,基类是CMFCPropertyGridProperty。 class C...
  • bibye_gongzuo
  • bibye_gongzuo
  • 2016年12月23日 13:32
  • 692

改变 PropertyGrid 控件的编辑风格(2)——编辑多行文本

改变 PropertyGrid 控件的编辑风格(2)——编辑多行文本 张昱e-zhangyu@vip.sina.com效果:适用场合:1、   编辑多行文本;2、   编辑长文本。 步骤一:定义从UI...
  • zhangyuk
  • zhangyuk
  • 2005年08月09日 14:52
  • 2682

改变 propertygrid 控件的编辑风格(2)——编辑多行文本

适用场合: 1、   编辑多行文本; 2、   编辑长文本。   步骤一:定义从uitypeeditor 派生的类,示例如下: using system; using system.windows.f...
  • NewMap
  • NewMap
  • 2007年09月29日 09:43
  • 733

easyUI中PropertyGrid 设置不可编辑

easyUI中PropertyGrid继承于datagrid
  • Erike_zhang
  • Erike_zhang
  • 2014年08月06日 15:22
  • 3742

C# 设计时动态改变实体在PropertyGrid中显示出来的属性

方法一: /// /// 实体属性处理 /// public class PropertyHandle { #region 反射控制只读、可见...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2015年11月21日 12:45
  • 2967

改变 propertygrid 控件的编辑风格(3)——打开对话框

适用场合: 1、   打开文件、打印设置等通用对话框 2、   打开特定的对话框   步骤一:定义从uitypeeditor 派生的类,以 openfiledialog 对话框为例,示例代码如下: u...
  • NewMap
  • NewMap
  • 2007年09月29日 09:44
  • 739

改变 PropertyGrid 控件的编辑风格(3)——打开对话框

改变 PropertyGrid 控件的编辑风格(3)——打开对话框 张昱e-zhangyu@vip.sina.com效果:适用场合:1、   打开文件、打印设置等通用对话框2、   打开特定的对话框 ...
  • zhangyuk
  • zhangyuk
  • 2005年08月09日 14:58
  • 2453

改变 PropertyGrid 控件的编辑风格(1)——加入日期控件-.NET教程,组件控件开发

适用场合: 编辑日期类型数据   步骤一:定义从uitypeeditor 派生的类,示例如下:   using system; using system.windows.forms; using sy...
  • NewMap
  • NewMap
  • 2007年09月29日 09:43
  • 956
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:改变 propertygrid 控件的编辑风格(4)——加入选择列表
举报原因:
原因补充:

(最多只允许输入30个字)