我想做一个自定义属性 
在属性编辑器里面鼠标单击设置时就弹出一对话框下来可以再上面写文字 
就类似Textbox的lines属性 
不知道怎么实现
大家指点一下啊最好有源码实例

解决方案 »

  1.   

    在TextBox的Text属性栏上本来就可以实现这个功能啊
      

  2.   

    看看这篇文档吧:
    http://www.microsoft.com/china/msdn/archives/library/dndotnet/html/usingpropgrid.asp
      

  3.   

    只要屬性是string[]型就可以了
      

  4.   

    转一个,试试吧,我已经测试通过
    改变 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();          } 
     
     
      

  5.   


    private System.ComponentModel.Container components = null;
    public string[] sLines
    {
    set
    {
    _sLines=value;
    }
    get
    {
    return _sLines;
    }
    }放在自定義的控件裡,然後在其它窗體使用這個控件,看sLines這屬性是不是你要的效果。