9

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

我注意到在某些带有文本属性的控件上,您不会被迫输入单行属性文本框,而是会弹出一个小窗口,您可以在其中输入多行。(事实上​​,Windows 窗体文本框控件允许在 Text 属性上执行此操作。)

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

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

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

1 回答 1

16

您可以将EditorAttribute与 一起使用MultilineStringEditor

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

为避免添加对 System.Design 的引用并因此需要完整框架,您还可以像这样编写属性:

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

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

于 2009-11-10T23:16:00.223 回答