Как добавить редактируемый комбинированный список в System.Windows.Forms.PropertyGrid? - PullRequest
6 голосов
/ 20 марта 2012

У меня есть System.Windows.Forms.PropertyGrid с разными типами значений. Для определенного элемента я хочу показать список полезных значений на выбор. Пользователь также может ввести новое значение. Нечто похожее на традиционный выпадающий список:

enter image description here

Пока у меня есть свой System.ComponentModel.TypeConverter, но я не могу понять, как получить в раскрывающемся списке с предлагаемыми значениями и возможность редактировать значение напрямую. Пожалуйста, помогите!

Ответы [ 2 ]

7 голосов
/ 20 марта 2012

Вы можете сделать это, внедрив свой собственный UITypeEditor .

Я рекомендую прочитать Получение максимальной отдачи от .NET Framework PropertyGrid Control .В частности, в разделе под названием Предоставление пользовательского интерфейса для ваших свойств рассказывается, как создать пользовательский элемент управления для конкретного свойства.

6 голосов
/ 12 сентября 2012

Это легко. В вашем собственном StringConverter вернуть false для GetStandardValuesExclusive и все.

Смотрите здесь:

internal class cmbKutoviNagiba : StringConverter
{
      public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
      {
          return FALSE;    // <----- just highlight! remember to write it lowecase
      }

      public override TypeConverter.StandardValuesCollection GetStandardValues(
          ITypeDescriptorContext context)
      {
          string[] a = { "0", "15", "30", "45", "60", "75", "90" };
          return new StandardValuesCollection(a);
      }

      public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
      {
          return true;
      }
  }

Я написал FALSE заглавными буквами, чтобы вам было легче это увидеть. Пожалуйста, поставьте его маленькими буквами:)

...