2010-09-21 64 views
0

我正在写一个自定义的控制进行编辑,我想添加一个String类型的“MessageText中”属性:.NET 2010的自定义控制,多字符串属性在设计师

<Browsable(True), 
    DefaultValue(""), 
    Category("CustomControls"), 
    Description("Blah."), 
    DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> 
    Public Property MessageText As String 

的MessageText中属性多行文本,用户必须能够使用设计者设置文本。问题在于设计者不允许直接为字符串属性输入换行符。

我想相同的行为系统的TextBox的Text属性,在那里你可以请单击向下箭头,写在出现的小文本编辑器行:

我怎么做?

回答

3

这是TextBoxBase.Text财产申报:

[Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), Localizable(true)] 
public override string Text 
{ 
    // etc.. 
} 

的[编辑]属性是你所需要的。如果您还使用.NET 4.0(注意版本字符串),则会很麻烦。最好使用构造函数的替代版本。 Project +添加引用,选择System.Design。看起来像这样:

using System; 
using System.ComponentModel; 
using System.Drawing.Design; 
using System.Windows.Forms; 
... 
     [Editor(typeof(System.ComponentModel.Design.MultilineStringEditor), typeof(UITypeEditor))] 
     public string MessageText { 
      // etc... 
     }