23

I want to change the icon on the taskbar of my software, so I changed the project settings. This path was suggested by Visual Studio itself

Path to the icon

But my taskbar still shows the same icon as before (the standard one) - In my Explorer the .exe has the correct icon, it just won't change in the taskbar.

I also tried to end explorer.exe and restart the task, but this didn't help at all. I also tried to set the resolution on 16x16 and 32x32 but both didn't work.

loomie
  • 606
  • 3
  • 10
  • 21

7 Answers7

53

You need to give your form that icon as well. The application icon is the one that is embedded in the application and displayed in Explorer or on shortcuts. Each form can have its own icon, though.

In the Form Designer view, Scroll down to Window Style and you will find the option to set the icon there.

Here is an example of this section in Rider:

enter image description here

Joey
  • 344,408
  • 85
  • 689
  • 683
  • 2
    Now I'm feeling like an idiot. Thanks. I thought when I change it in the Project properties it will do it itself. – loomie Mar 06 '13 at 11:51
  • 4
    Can someone elaborate on this? What do you mean the "form" needs the icon as well? How do I change that if I have already changed the icon in project > properties > application > icon ? – MrDysprosium Oct 21 '16 at 14:31
15

I've noticed a couple of things with Windows 7 and Windows 8. The Windows Taskbar icon is taken from the programs Shortcut's icon, not the applications icon.

If you assign your application an Icon through Visual Studio it will set an icon that appears in the form as well as in the notification area. However the taskbar icon and any shortcut's you create will not take the icon from the application, as they used to, instead they are created with the default shortcut icon.

So I found that I had to set up the Shortcut icon's (that lives in the Start Menu) as part of my installer for the application.

I don't have to do this for Windows XP.

Amicable
  • 3,115
  • 3
  • 49
  • 77
  • 1
    I second this, it somewhat applies to win10 too. Weird as it may be - while the application is Not pinned to taskbar in Windows 10, the Form.Icon is applied, but default .exe is used if an uninstalled app without shortcut icon is pinned – mschr Aug 12 '16 at 12:50
  • 1
    Moreover, in Windows 10 you can try to launch the exe directly from Program Files and it uses desktop shortcut icon for taskbar, not the app icon of form icon. – Andrey Moiseev Oct 25 '16 at 18:51
8

1 - Add a file (e.g. Address_Book.ico) to Resources section

2 - Add follow lines in your code

   public Form1()
   {
       ....
       this.Icon = Properties.Resources.Address_Book;
   }

3 - It Works.

Ali Reza
  • 217
  • 3
  • 3
  • This method does not work in all instances. I have an application that is launched as a minimized app in startup and dynamically sets the main forms icon. This defaults to the cached icon and not the current icon set for the main window. Same for apps pinned to the taskbar. – C J Jun 02 '22 at 11:50
5

Set the Form.Icon Property through code also consider the below suggestion from MSDN

A form's icon designates the picture that represents the form in the taskbar as well as the icon that is displayed for the control box of the form. This property will have no effect if FormBorderStyle is set to FixedDialog. In that case, the form will not display an icon.

Smaug
  • 2,625
  • 5
  • 28
  • 44
2

You will require to use notifyicon component from toolbox. Please follow the instructions as given below.

TaskBar with the Windows Forms NotifyIcon Component

ramya
  • 2,350
  • 6
  • 31
  • 57
0

The icon set in the project properties is the icon of the executable and not the icon in the taskbar, the icon in the taskbar is the icon from the current form.

If you have multiple forms with the same icon and you set the icon of a form using the GUI then it will add multiple instances of the icon into the compiled executable file, this will lead to a larger compiled executable.

So you should put this Icon = Properties.Resources.icon; in the constructor of each form to set the icon of the form.

As for the icon size, im not sure what the max size is but i use 128x128 icon files.

string.Empty
  • 10,393
  • 4
  • 39
  • 67
0

The taskbar icon will not change when the forms icon is set after start up when:

  1. The application is Pinned to the Taskbar
  2. The application is started Minimized

I have an app that falls into category 2. It is in the windows startup group and starts minimized. Without jumping trough hoops and changing to using overlays the simplest solution was to create a simple 1 line app that then launch's my app.

Process.Start(appName);

This app is in the startup group and when it launches my main application the taskbar icon does follow the forms current icon setting.

C J
  • 144
  • 8