×

Winform生成exe程序,多个或全部窗口使用同一个图标(icon),减小程序体积

管理员 管理员 发表于2024-05-10 00:26:35 浏览1433 评论0

抢沙发发表评论

第一种:

适合在程序图标、窗口图标都相同时使用。

首先给项目设置图标(也就是生成exe程序后显示桌面图标),对着项目右键-属性-图标和清单,设置一个ico。

然后在窗口类的构造函数里加上一句

this.Icon=Icon.ExtractAssociatedIcon(Application.ExecutablePath)。


public frmMain()

{

  InitializeComponent();

  this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);

}



第二种:

适合不同窗口不同图标,而且这些图标需要二次利用的。


首先要把图标添加进资源文件里。

双击打开的资源文件,如果需要二次利用,则下拉选择“图像”;

如果只用于窗口图标,则下拉选择“图标”。

点击添加资源,添加一个或多个小图片作为图标添加。

注意即使选择了图像,但如果添加.ico文件的话,该文件会被自动分类到图标中,难以二次利用。


本例中添加的是add.png

至此该图标已经可以被按钮等控件使用了。

选择一个控件例如按钮,然后image属性,选择“项目资源文件”,即可找到这个图标。

那么如何让窗口也使用这个图标,窗口类的构造函数里添加这行代码

this.Icon = Icon.FromHandle(Properties.Resources.add.GetHicon());


其中add为资源名,也就是你刚才添加的图标的名字,本例中为add

如果你当时下拉选择“图标”而不是“图像”的话,则不需要GetHicon()


public frmMain()

{

  InitializeComponent();

  this.Icon = Icon.FromHandle(Properties.Resources.add.GetHicon());

}


群贤毕至

访客