我想在C#编写的WinForm应用程序中报告操作的状态。为了使其更加用户友好,我想根据状态在左侧显示图标。
- 过程中的GIF动画
- “OK”或“Error”图标,具体取决于结果。
我想使用原生的WinForms Label控件,它可以很好地与动画GIF一起工作,并且看起来像它可以得到的标准。
然而,我的问题是,文字来是写在图片上。似乎没有任何属性设置一个边距的文本。我尝试了最明显的事情,这是前缀与空格,这工作,除非当文本换行到下一行,如下所示。
如果可能的话,我不想花太多时间编写/测试/调试派生控件……我可以放一个快速而肮脏的用户控件,在标签的左边有一个图片框,但感觉不是很干净。
有没有什么技巧可以快速优雅地解决这个问题,或者有人可以告诉我一个相对轻量级的支持这个的Label派生类?(我看了看CodeProject,但找不到太多)。
谢谢大家。
7条答案
按热度按时间bttbmeg01#
一个简单的替代方法是使用
Button
而不是Label
,如下所示:通过使用以下属性,您可以设置
Button
的样式,使其看起来像Label
,同时还可以选择保持图像和文本彼此对齐:一个简单的方法来达到预期的效果;没有用户控制!
t98cgbkg2#
最好的选择是使用一个图像和一个单独的标签的快速用户控件,只要添加一个公共字符串属性来设置标签的文本,就基本完成了。
tct7dpnv3#
这里有一个不同的解决方案,我觉得它比“样式按钮”的方法更简单,它还允许你设置图像和文本之间的距离(间距)。
iyzzxitl4#
UserControl
的一个替代方案是使用两列一行的TableLayoutPanel
,将图像控件放在一个单元格中,将文本控件放在另一个单元格中。4ktjp1zp5#
这是一个老问题,但也许有人会看这里就像我在这里...
您可以在图像和文本上使用对齐:
kyxcudwk6#
我想,我找到了更简单的解决办法:
标签必须按如下方式设置(可在Designer上设置):
结果:
cbwuti447#
应该可以