Разрешить многострочные свойства String в окне «Свойства» - PullRequest
7 голосов
/ 11 ноября 2009

У меня есть пользовательский элемент управления Windows Form со строковым свойством для настройки текста текстового поля. Эта строка может быть многострочной.

Я заметил, что в некоторых элементах управления со свойством text вместо принудительного ввода текста в однострочное текстовое поле появляется небольшое всплывающее окно, где можно вводить несколько строк. (Фактически, элемент управления Text Forms Windows Forms позволяет это для свойства Text.)

Как включить эту функцию в окне свойств для свойства, которое я спроектировал?

Ниже приведен не реальный код в моем приложении, а пример того, как такое свойство может быть определено

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

1 Ответ

15 голосов
/ 11 ноября 2009

Вы можете использовать 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")]

Хотя теперь это не проблема, так как они перестали разбивать структуру на Профиль клиента и Полный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...