Windows窗体按钮:图像还是图像列表+图像索引
本文关键字:图像 列表 索引 按钮 Windows 窗体 | 更新日期: 2023-09-27 18:04:09
上下文
在C#窗体项目中,有两种方法可以让按钮显示图像:
- 设置ButtonBase。图像
- 设置ButtonBase。ImageList,然后使用ButtonBase在该集合中选择一个图像。ImageIndex属性
问题
- 为什么有两种解决方案?我怀疑ImageList是为了接近底层的Win32软件层API
- 对于按钮,有什么理由喜欢其中一个而不是另一个吗?(对于其他一些控件,您可能别无选择。(
除非有人有更好的理由,否则我会说:只做尊重简单性和良好实践的事情,比如"不要重复自己"。
支持的论点或ImageList
- 对于从Visual Studio设计器中设置的小型图像集合,它提供了一个ImageList编辑器来指导您,并将相关图像保存在源代码中,而不是单独维护集合
- 如果其他控件需要你维护ImageList,你已经付出了代价,你也可以将其用于按钮
赞成的论点或图像
当你有选择:
ImageList案例
- ImageList需要您以某种方式显式或隐式地管理图像(整数或字符串——字符串键控有问题?(的索引
- 编译器无论如何都无法检查索引或字符串是否被误用
Image案例
- 您可能不需要管理集合。可以使用单个对象在"图像"特性中进行设置
- 即使是在你需要收藏的情况下也是更好的。您可以使用所需的任何键类型(例如Dictionary(对集合进行索引。如果使用Enum对集合进行索引,编译器可以在编译时进行检查,并在编写源代码时帮助您(Intellisense(
底线
我更喜欢Image选项,如果需要的话,我会使用Enum来处理我自己的集合,但我会将其命名为个人偏好。