-Dr_X- Ответов: 2

Показать пользовательскую всплывающую подсказку для значения перечисления во время разработки?


В библиотеке DLL у меня есть следующее перечисление.
/// <summary>
/// 
/// </summary>
public enum Shapes
{
  /// <summary>
  /// 
  /// </summary>
  [DescriptionAttribute("A shape with 1 continuous edge that has no corners.")]
  Circle,

  /// <summary>
  /// 
  /// </summary>
  [DescriptionAttribute("A shape 4 equal sides with 4 90° corners.")]
  Square,

  /// <summary>
  /// 
  /// </summary>
  [DescriptionAttribute("A shape 2 pairs of sides that are unequal with 4 90° corners.")]
  Rectangle,
}

Как сделать так, чтобы текст атрибута DescriptionAttribute отображался во всплывающей подсказке вместо фигуры?Круг = 0 во время проектирования в пределах VS?

Спасибо

Что я уже пробовал:

Я еще не нашел никаких решений в интернете.

Richard Deeming

Попробуйте поместить описание в комментарии XML doc.

/// <summary>
/// A shape with 1 continuous edge that has no corners.
/// </summary>
[DescriptionAttribute("A shape with 1 continuous edge that has no corners.")]
Circle,

2 Ответов

Рейтинг:
2

-Dr_X-

После компиляции по крайней мере полдюжины раз тег XML summary наконец появляется вместе с подсказкой.

Спасибо,

/// <summary>
///
/// </summary>
public enum Shapes
{
  /// <summary>
  /// "A shape with a continuous edge and has no corners."
  /// </summary>
  [DescriptionAttribute("A shape with a continuous edge and has no corners.")]
  //[EnumToClass(typeof(Circle))]
  Circle,

  /// <summary>
  /// "A shape 4 equal side with 4 90° corners."
  /// </summary>
  [DescriptionAttribute("A shape 4 equal side with 4 90° corners.")]
  //[EnumToClass(typeof(Square))]
  Square,

  /// <summary>
  /// "A shape 2 pairs of side that are unequal with 4 90° corners."
  /// </summary>
  [DescriptionAttribute("A shape 2 pairs of side that are unequal with 4 90° corners.")]
  //[EnumToClass(typeof(Rectangle))]
  Rectangle,
}


Преступник, я дам тебе ответ на твой вопрос.


#realJSOP

Держу пари, что он начал появляться после того, как вы выполнили действие clean/build all.

Рейтинг:
19

#realJSOP

Вы не указали платформу (WinForms, WPF или MVC)...

На первый взгляд, я бы создал список объектов формы:

public class MyShape
{
    public ShapeEnum Value { get; set; }
    public string Name { get { return this.Value.ToString(); } }
    public string Description {get; set; }
}

public ListOfShapes:List<MyShape>{}


А затем создайте его экземпляр в статическом классе:

public static Globals
{
    public static ListOfShapes Shapes = null;
    static Globals()
    {
        Shapes = new ListOfShapes(){ new MyShape(){Value=ShapeEnum.Circle, Description = "circle description"},...};
    }
}


Свяжите свой контроль с этим списком.


-Dr_X-

Я ищу подсказку во время разработки, а не во время выполнения. Я знаю, что могу привязать его к выпадающему списку. Я хочу, чтобы разработчики видели текст, а не целочисленное значение перечисления. -

Два приложения, winforms и wpf.

Спасибо

#realJSOP

Конструктор действует как среда выполнения для отображения форм. Если данные доступны, то t будет отображаться во время разработки (в WPF).