改变 PropertyGrid 控件的编辑风格(2)——编辑多行文本 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 改变 PropertyGrid 控件的编辑风格(2)——编辑多行文本 (http://www.webasp.net/article/26/25980.htm) |
| -- 作者:未知 -- 发布日期: 2005-08-18 |
改变 PropertyGrid 控件的编辑风格(2)——编辑多行文本
张昱e-zhangyu@vip.sina.com 效果:
适用场合: 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(); }
|
| webasp.net |