【问题标题】:Windows Forms Button : Image or ImageList + ImageIndex?Windows 窗体按钮:图像或 ImageList + ImageIndex?
【发布时间】:2014-05-20 22:16:01
【问题描述】:

上下文

在 C# Windows 窗体项目中,有两种方法可以让 Button 显示图像:

问题

  • 为什么有两种解决方案?我怀疑 ImageList 是为了靠近底层的 Win32 软件层 API。
  • 对于按钮,是否有任何理由更喜欢其中一个? (对于其他一些控件,您可能别无选择。)

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    除非有人有更好的理由,否则我会说:只做尊重简单和良好做法的事情,例如“不要重复自己”。

    赞成或 ImageList 的论据

    • 对于您从 Visual Studio 设计器设置的小型图像集合,它提供了一个 ImageList 编辑器,可引导您并将相关图像保存在源代码中,而不是单独维护集合。
    • 如果某些其他控件无论如何都需要您维护 ImageList,那么您已经付出了代价,您也可以将其用于按钮。

    赞成或图像的论据

    当你有选择时:

    ImageList 案例

    • ImageList 需要您以某种方式显式或隐式地管理图像索引(整数或字符串——以及string keying is buggy ?)。
    • 编译器无法检查索引或字符串是否被滥用。

    图像案例

    • 您可能不需要管理集合。您可以使用单个对象在 Image 属性中进行设置。
    • 即使在您需要收藏的情况下也更好。您可以使用所需的任何键类型(例如字典)为集合编制索引。如果您使用 Enum 索引集合,编译器可以在编译时检查并在源代码编写时帮助您 (Intellisense)。

    底线

    如果需要,我倾向于使用 Image 选项并使用 Enum 处理我自己的集合,但我会说出个人偏好。

    【讨论】:

      猜你喜欢
      • 2013-06-05
      • 1970-01-01
      • 2012-02-12
      • 2020-07-22
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      相关资源
      最近更新 更多