返回
原创文章

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

产品经理-40

2014-8-1 12:29:14

关注楼主

724935

步骤一:定义从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();



         }



码字不容易,赏杯咖啡钱

原创文章+关注

主题:34  帖数:2万

全部回复35
lwi8i2f2jn2 LV.4

沙发2016-9-8 19:47:24

很不错
nmjdvxh1952 LV.4

板凳2016-9-8 19:55:26

说的非常好
gt1z4le33 LV.4

地板2016-9-8 19:56:58

不错不错
lwi8i2f2jn2 LV.4

5#2016-9-8 20:04:40

内容非常不错,谢谢楼主,我学到了
1234.. 8下一页
我说一句...

点赞

248

收藏

19

分享

新浪微博 QQ空间 QQ好友 腾讯微博 二维码 复制网址 举报主题

加载中...

  • /

  • 三十
  • 推广
    菜单