今天在做东东的时候,想美化下窗体的图标,不用Winform默认的,但是又不需要太复杂,只要窗体和程序的图标一样就可以了,手工设置的低档思路就不要考虑了,
要做懒人就要懒到家,懒得彻底,所以花了点时间,琢磨了个基类来实现这个功能,你只需要让你的窗口都从这个基类派生就可以了,
注意:图标的文件名默认是logo.ico,使用的时候要把图标作为资源嵌入到你的程序中。
1 public class BaseForm : Form
2 {
3 protected override void OnLoad(EventArgs e)
4 {
5 base.OnLoad(e);
6
7 if (DesignMode)
8 {
9 return;
10 }
11 Assembly a = Assembly.GetEntryAssembly();
12 string[] names = a.GetManifestResourceNames();
13 Stream ico = null;
14 foreach(string s in names)
15 {
16 if (s.ToLower().EndsWith("logo.ico"))
17 {
18 ico = a.GetManifestResourceStream(s);
19 }
20 }
21 if (ico == null)
22 {
23 return;
24 }
25
26 Icon = new Icon(ico);
27 }
28 }
3 protected override void OnLoad(EventArgs e)
4 {
5 base.OnLoad(e);
6
7 if (DesignMode)
8 {
9 return;
10 }
11 Assembly a = Assembly.GetEntryAssembly();
12 string[] names = a.GetManifestResourceNames();
13 Stream ico = null;
14 foreach(string s in names)
15 {
16 if (s.ToLower().EndsWith("logo.ico"))
17 {
18 ico = a.GetManifestResourceStream(s);
19 }
20 }
21 if (ico == null)
22 {
23 return;
24 }
25
26 Icon = new Icon(ico);
27 }
28 }