在“属性”窗口中允许多行字符串属性

时间:2009-11-10 23:04:45

标签: c# visual-studio-2008 windows-forms-designer

我有一个带有字符串属性的Windows窗体用户控件,用于设置文本框的文本。这个字符串可以是多行的。

我注意到在某些带有text属性的控件上,而不是强制键入单行属性文本框,你可以弹出一个可以输入多行的地方。 (事实上​​,Windows窗体文本框控件允许在Text属性上使用它。)

如何在我设计的属性的属性窗口中启用此功能?

以下不是我应用中的真实代码,而是如何定义此类属性的示例

public string Instructions
{
   get
   {
      return TextBox1.Text;
   }
   set
   {
      TextBox1.Text = value;
   }
}

1 个答案:

答案 0 :(得分:15)

您可以将EditorAttributeMultilineStringEditor

一起使用
[EditorAttribute(typeof(MultilineStringEditor), 
                 typeof(System.Drawing.Design.UITypeEditor))]  
public string Instructions
{
   get
   {
      return TextBox1.Text;
   }
   set
   {
      TextBox1.Text = value;
   }
}

为避免添加对System.Design的引用并因此需要Full框架,您还可以编写如下属性:

[EditorAttribute(
    "System.ComponentModel.Design.MultilineStringEditor, System.Design",
    "System.Drawing.Design.UITypeEditor")]

虽然现在他们已经停止将框架拆分为客户端配置文件和完整版本,但这不是一个问题。