Кнопка Windows Forms: изображение или ImageList + ImageIndex?

1

контекст

В проекте С# Windows Form есть два способа отображения кнопки:

Вопрос

  • Почему два решения? Я подозреваю, что ImageList должен находиться рядом с базовым API-интерфейсом уровня Win32.
  • Есть ли какая-то причина предпочитать одну над другой, для кнопки? (Для некоторых других элементов управления у вас может не быть выбора).
Теги:
winforms

1 ответ

1
Лучший ответ

Если кто-то не имеет лучшего обоснования, я бы сказал: просто делайте то, что уважает простоту и хорошие практики, такие как "не повторяйте себя".

Аргумент в пользу или ImageList

  • Для небольших коллекций изображений, которые вы устанавливаете в дизайнере Visual Studio, он предлагает редактор ImageList, который поможет вам и сохраняет связанные изображения в исходном коде, а не сохраняет коллекции отдельно.
  • Если некоторым другим элементам управления вам необходимо поддерживать ImageList, вы уже заплатили цену, вы также можете использовать это для кнопок.

Аргумент в пользу или изображения

Когда у вас есть выбор:

Случай с ImageList

  • ImageList требует, чтобы вы каким-то образом управляли индексами изображений (целые числа или строки - и строковая манипуляция была ошибкой?), Явно или неявно.
  • Компилятор не может проверить, правильно ли используются индексы или строки.

Случай с изображением

  • Возможно, вам не понадобится управлять коллекцией. Вы можете использовать отдельные объекты для установки в свойстве Image.
  • Даже если вам нужна коллекция, лучше. Вы можете индексировать коллекцию, используя любой желаемый тип ключа, например словарь. Если вы индексируете коллекцию с помощью Enum, компилятор может проверить время компиляции и помочь вам (Intellisense) при записи времени исходного кода.

Нижняя линия

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню