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

翻译|其它|编辑:郝浩|2005-08-16 11:01:00.000|阅读 1660 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


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

效果图片:


适用场合:

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();

}


 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP