适用场合:
  1、 编辑多行文本;
  2、 编辑长文本。
  步骤一:定义从UITypeEditor 派生的类,示例如下:
  using System;
  using System.Windows.Forms;
  using System.Drawing.Design;
  using System.Windows.Forms.Design;
  namespace blog.csdn.net.zhangyuk
  {
   /// <summary>
   /// PropertyGridMutiText 的摘要说明。
   /// </summary>
   public class PropertyGridRichText : UITypeEditor
   {
   public override UITypeEditorEditStyle GetEditStyle(
  System.ComponentModel.ITypeDescriptorContext context)
   {
   return UITypeEditorEditStyle.DropDown;
   }
  
   public override object EditValue(
  System.ComponentModel.ITypeDescriptorContext context,
  System.IServiceProvider provider,
  object value)
   {
   try
   {
   IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)
  provider.GetService(typeof(IWindowsFormsEditorService));
   if( edSvc != null )
   {
   if( value is string )
   {
   RichTextBox box = new RichTextBox();
   box.Text = value as string;
   edSvc.DropDownControl( box );
   return box.Text;
   }
   }
   }
   catch( Exception ex )
   {
   System.Console.WriteLine( 'PropertyGridRichText Error : ' + ex.Message );
   return value;
   }
   return value;
   }
   }
  }
  步骤二:编辑属性类,指定编辑属性。示例如下:
  namespace blog.csdn.net.zhangyuk
  {
   public class SomeProperties
   {
   private string _finished_time = '';
   ……
   // 多行文本编辑框
   string _mutiLineSample = '';
   [
   Description('多行文本编辑框'),
   Category('属性'),
   EditorAttribute(typeof(PropertyGridRichText),
  typeof(System.Drawing.Design.UITypeEditor))
   ]
   ]
   public String 多行文本
   {
   get { return _mutiLineSample; }
   set { _mutiLineSample = value;}
   }
   ……
   }
  }
  步骤三:设置PropertyGrid的属性对象。示例如下:
   private void Form1_Load(object sender, System.EventArgs e)
   {
   this.propertyGrid1.SelectedObject = new SomeProperties();
   }

posted on 2010-12-07 11:18  代岳强  阅读(461)  评论(0编辑  收藏  举报