我在Windows7上用Visual C#2010编写了一个程序,我想更改它在开始菜单和任务栏中显示的图标。
我已经在三个不同的地方将图标更改为我想要的内容:在表单设计器的主窗体属性列表中;在我添加到项目中的NotifyIcon中;并在应用程序部分的“图标和清单”条目的项目属性页面中。
结果是我在应用程序的标题栏上,系统托盘中以及用于运行应用程序的图标数组中都有正确的图标,当你点击alt-tab时会出现这些图标。但是我仍然在开始菜单中有错误的图标(我只是将可执行文件拖到开始菜单中将其放在那里),并在任务栏中。奇怪的是,当我将鼠标悬停在任务栏中的(错误)图标上时,会在其下方弹出正确的图标以及应用程序的标题。
有人可以告诉我还需要改变什么才能使所有显示的图标成为我想要的图标吗?
相关问题:同样在开始菜单中,名称显示为默认的“WindowsFormsApplication1”,即使我已经改变了我能想到的任何地方,包括所有项目目录和名称空间。我可以在开始菜单中轻松地重命名它,但是当我将它拖到那里时我希望它是正确的。
对这两个问题的任何帮助都非常感谢。
编辑:至少在我的屏幕上,我对评论的回答是隐藏的,所以我会在这里添加:
1)我还没有真正部署它,我只是从VC#IDE运行它,或者点击VC#创建的exe文件。
2)我没有将应用程序添加到任务栏。我说的是应用程序运行时出现在任务栏中的图标。
3)在我改变图标的三个地方中,我没有看到任何关于尺寸的信息。
4)如何更新exe中的图标?
5)即使我完全关闭并重新启动PC,问题仍然存在。
感谢所有回复的人。
编辑2:还忘了添加在Windows资源管理器中文件名旁边显示正确的图标。
答案 0 :(得分:1)
只需将Hans Passat发表此评论作为回答,以提高公众的知名度。
Windows shell会缓存任务栏上使用的图标,因此即使对.NET项目进行更改并重新部署应用程序,您仍可能会在任务栏上看到旧的(或默认)图标。解决方案是导航到 C:\ Users \ usernamehere \ AppData \ Local 文件夹,并将文件 IconCache.db 重命名为其他内容,例如 IconCache。 old.db
然后注销并再次登录。
这应解决问题,现在您将在任务栏中看到新图标。
答案 1 :(得分:0)
任务栏中的图标(如果已固定)和开始菜单是初始设置时创建的快捷方式的一部分。您必须删除并重新创建它们。它们不会动态反映对应用图标的更改。
答案 2 :(得分:0)
采取最激进的方法,我开始了一个全新的项目,复制了旧项目中的所有cs文件,并在构建之前将所有图标设置为我想要的图标。那很有用;所有图标都是正确的,开始菜单中的名称是正确的。
但肯定有一种方法可以在初始构建后更改它们???
答案 3 :(得分:0)
您需要将快捷方式的图标更改为您的应用。开始菜单和任务栏都使用快捷方式的图标。
或者,您也可以使用WM_SETICON设置一个图标,该图标将覆盖快捷方式图标。