【发布时间】:2013-03-06 11:46:46
【问题描述】:
我想更改我的软件任务栏上的图标,所以我更改了项目设置。这个路径是 Visual Studio 自己建议的
但我的任务栏仍然显示与以前相同的图标(标准图标) - 在我的资源管理器中,.exe 具有正确的图标,只是不会在任务栏中更改。
我也尝试结束 explorer.exe 并重新启动任务,但这根本没有帮助。 我也尝试将分辨率设置为 16x16 和 32x32,但都不起作用。
【问题讨论】:
我想更改我的软件任务栏上的图标,所以我更改了项目设置。这个路径是 Visual Studio 自己建议的
但我的任务栏仍然显示与以前相同的图标(标准图标) - 在我的资源管理器中,.exe 具有正确的图标,只是不会在任务栏中更改。
我也尝试结束 explorer.exe 并重新启动任务,但这根本没有帮助。 我也尝试将分辨率设置为 16x16 和 32x32,但都不起作用。
【问题讨论】:
您还需要为表单提供该图标。应用程序图标是嵌入在应用程序中并显示在资源管理器或快捷方式中的图标。不过,每个表单都可以有自己的图标。
【讨论】:
我注意到 Windows 7 和 Windows 8 的一些问题。Windows 任务栏图标取自程序快捷方式的图标,而不是应用程序图标。
如果您通过 Visual Studio 为您的应用程序分配一个图标,它将设置一个显示在表单和通知区域中的图标。但是,您创建的任务栏图标和任何快捷方式都不会像以前那样从应用程序中获取图标,而是使用默认快捷方式图标创建。
所以我发现我必须将快捷方式图标(位于开始菜单中)设置为应用程序安装程序的一部分。
对于 Windows XP,我不必这样做。
【讨论】:
1 - 将文件(例如 Address_Book.ico)添加到资源部分
2 - 在代码中添加后续行
public Form1()
{
....
this.Icon = Properties.Resources.Address_Book;
}
3 - 有效。
【讨论】:
通过代码设置Form.Icon 属性还考虑MSDN 的以下建议
表单的图标指定在任务栏中代表表单的图片以及为表单的控制框显示的图标。
如果 FormBorderStyle 设置为 FixedDialog,此属性将无效。在这种情况下,表单将不会显示图标。
【讨论】:
您将需要使用工具箱中的 notifyicon 组件。请按照以下说明进行操作。
【讨论】:
项目属性中设置的图标是可执行文件的图标而不是任务栏中的图标,任务栏中的图标是当前表单中的图标。
如果您有多个具有相同图标的表单,并且您使用 GUI 设置了一个表单的图标,那么它将将该图标的多个实例添加到已编译的可执行文件中,这将导致编译后的可执行文件更大。
所以你应该把这个Icon = Properties.Resources.icon;放在每个表单的构造函数中来设置表单的图标。
至于图标大小,我不确定最大尺寸是多少,但我使用 128x128 图标文件。
【讨论】: