Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改应用程序';s图标:在标题栏中工作,但不在任务栏或“开始”菜单中_C#_Winforms - Fatal编程技术网

C# 更改应用程序';s图标:在标题栏中工作,但不在任务栏或“开始”菜单中

C# 更改应用程序';s图标:在标题栏中工作,但不在任务栏或“开始”菜单中,c#,winforms,C#,Winforms,我在Windows7上用Visual C#2010编写了一个程序,我想更改它在“开始”菜单和任务栏中显示的图标 我已经在三个不同的位置将图标更改为我想要的:在表单设计器的主表单属性列表上;在我添加到项目中的NotifyIcon中;在应用程序部分的“图标和清单”条目的项目属性页中 结果是,我在应用程序的标题栏、系统托盘以及当你点击alt tab时出现的运行应用程序的图标数组中找到了正确的图标。但是我在“开始”菜单(我只是将可执行文件拖到“开始”菜单将其放在那里)和任务栏中仍然有错误的图标。奇怪的是

我在Windows7上用Visual C#2010编写了一个程序,我想更改它在“开始”菜单和任务栏中显示的图标

我已经在三个不同的位置将图标更改为我想要的:在表单设计器的主表单属性列表上;在我添加到项目中的NotifyIcon中;在应用程序部分的“图标和清单”条目的项目属性页中

结果是,我在应用程序的标题栏、系统托盘以及当你点击alt tab时出现的运行应用程序的图标数组中找到了正确的图标。但是我在“开始”菜单(我只是将可执行文件拖到“开始”菜单将其放在那里)和任务栏中仍然有错误的图标。奇怪的是,当我将鼠标悬停在任务栏中的(错误的)图标上时,正确的图标会在其下方弹出,同时显示应用程序的标题

有人能告诉我还有什么我需要改变,使所有显示的图标都是我想要的吗

相关问题:同样在“开始”菜单中,该名称显示为默认的“WindowsFormsApplication1”,尽管我在我能想到的任何地方都更改了它,包括所有项目目录和名称空间。我可以很容易地在“开始”菜单中重命名它,但我希望当我将它拖动到那里时它是正确的

非常感谢您对这两个问题的任何帮助

编辑:至少在我的屏幕上,我对评论的回答是隐藏的,所以我将在这里添加它们:

1) 我还没有真正部署它,我只是从VC#IDE或通过单击VC#创建的exe文件来运行它

2) 我没有将应用程序添加到任务栏。我说的是应用程序运行时出现在任务栏上的图标

3) 在我提到的三个改变图标的地方,我没有看到任何关于尺寸的东西

4) 如何更新exe中的图标

5) 即使我完全关闭并重新启动电脑,问题仍然存在

感谢所有回应的人


编辑2:还忘了添加正确的图标显示在Windows资源管理器中的文件名旁边。

任务栏中的图标(如果固定)和“开始”菜单是最初设置时创建的快捷方式的一部分。您必须删除并重新创建它们。它们不会动态地反映对应用程序图标的更改。

采用最激进的方法,我启动了一个全新的项目,从旧项目复制了所有cs文件,并在进行构建之前将所有图标设置为我想要的图标。成功了;所有图标都正确,并且“开始”菜单中的名称正确


但是在最初的构建之后,肯定有办法改变它们吗

汉斯·帕萨特(Hans Passat)发表了这篇评论,作为在这里提高知名度的答案

windows外壳会缓存任务栏上使用的图标,因此即使在对.NET项目进行更改并重新部署应用程序后,您仍可能在任务栏上看到旧的(或默认的)图标。解决方案是导航到文件夹C:\Users\usernamehere\AppData\Local,并将文件IconCache.db重命名为其他文件,例如IconCache.old.db

然后注销并再次登录


这将解决问题,您现在将在任务栏中看到新图标。

您需要将快捷方式的图标更改为应用程序。“开始”菜单和任务栏都使用快捷方式的图标


或者,您也可以使用WM_SETICON设置一个图标,该图标将覆盖快捷方式图标。

您如何部署应用程序?是手动复制、设置项目、单击一次还是其他方法?在更改图标之前,您是否将应用程序添加到任务栏?这可能就是为什么它有一个错误的,直到你徘徊在它上面。您是否尝试过将其从任务栏中删除,然后重新添加?您是否更改了所有大小的图标?您还必须更新EXE中的主图标。shell会缓存图标,以便您看到旧图标。重命名隐藏的%AppData%\Local\IconCache.db文件,注销并重新登录。在superuser.com上询问更多关于它的问题,那么我想我的问题是,如何删除并重新创建它们?