Windows Forms Application Icon suddenly shows as default icon or does not update color after KB5051989 update

Emmanuel Guballa 25 Reputation points
2025-03-06T08:36:12.63+00:00

Hi,

Our C# Windows Forms Application icon (in the taskbar) suddenly shows as default icon or sometimes doesn't update its color (based on the customization) after installing the KB5051989 update. This has been working for 15 years, and the issue just appeared after the said update. Removing the update will make it work as usual. We have a VM that only have the KB5051979 update and there, the problem doesn't show up. The issue was also experienced by our clients, and we can also see this internally. Even after clearing the icon cache and rebuilding it, the problem still occurs.

There were a few cases, wherein I locked my machine while the application is running. And when I came back and logged in after a few minutes, the icon is displayed properly and with the correct color customization.

Here is a sample screenshot of the issue.

Image

And here is the working one, without the update.

Image

Here is the case where the taskbar icon did not update the color in the taskbar, but it is correctly shown in the Task Manager and in the live preview:

2025-03-06 16_31_07-

Is there something with K8SOS1989 update that may have affected taskbar icons of windows forms applications?

Any other advice that we can try to make it work as before?

Regards,

Emman G

Developer technologies | Windows Forms
{count} votes

3 answers

Sort by: Most helpful
  1. Shideh Kolahdooz 5 Reputation points
    2025-03-06T08:43:18.6566667+00:00

    Hi

    This issue with taskbar icons not updating correctly after the Windows update (K8SOS1989) is interesting, especially since it worked flawlessly for 15 years before.

    Based on your description, there appears to be a regression in how Windows handles application icons in the taskbar specifically after this update. The fact that it sometimes works correctly after a lock/unlock cycle suggests it might be related to the Windows Explorer shell's icon cache management or rendering.

    Here are some potential solutions to try:

    Icon Resource Loading: Review how your application loads and sets its taskbar icon. Ensure you're using the recommended APIs like SetWindowIcon or properly setting the icon in your application properties.

    Handle Windows Messages: Implement explicit handling of system messages related to taskbar icon updates. Your application might need to respond to WM_TASKBARCREATED or similar messages to force icon updates.

    Icon Format Optimization: Check if your icon resource formats might be affected by changes in the update. Try converting your icons to different formats or bit depths.

    Application Manifest: Make sure your application has a proper manifest file that declares compatibility with the Windows version you're running.

    DPI Awareness: Ensure your application correctly handles DPI scaling, as this can sometimes affect icon rendering.

    Temporary Workaround: If feasible, you could implement code that periodically refreshes the application icon or forces a refresh when the application detects it's returning from a locked state.

    Report to Microsoft: Since this appears to be a regression introduced by a specific update, consider reporting this to Microsoft through their feedback channels or support portal. Include your analysis showing it works with K8SOS1979 but not with K8SOS1989.

    The fact that the icon appears correctly in Task Manager and live preview but not in the taskbar suggests this is likely a Windows shell rendering issue rather than a problem with your application's icon resources themselves.

    0 comments No comments

  2. Gschwandegger Gerald 5 Reputation points
    2025-05-20T12:23:37.52+00:00

    Hi,

    after spending a lot of time with this issue i found i simple solution for my projects. I added the icon assignment in the Load method of the form and know in all projects the icon is showing in the taskbar ;)

       private void Form1_Load(object sender, EventArgs e)
       {
           this.Icon = new Icon("xxx.ico");
       }
    

  3. Emmanuel Guballa 25 Reputation points
    2025-05-30T03:14:58.7133333+00:00

    Hello,

    Just would like to give an update here for those who also encountered the problem.

    We created a Microsoft ticket for this issue and logs were collected from my machine. But they cannot see any anomaly and asked us to provide a simple winform application where it can be reproduced. We failed to reproduce this problem on a simple app and there it always works.

    After more research related to taskbar icon problem, I found this: https://www.reddit.com/r/WindowsHelp/comments/1grzcdy/comment/mrgsllj/. And after trying the suggestion here, I observed that the taskbar gets refreshed after changing some settings, so I looked for a way to refresh the taskbar in C# and found this: https://www.reddit.com/r/Windows11/comments/12ygqei/how_can_i_refresh_the_taskbar_after_making_some/?rdt=45820.

    We ended up refreshing the taskbar using the SendMessage function (from user32.dll) after setting the icon and this worked for us.

    private const int HWND_BROADCAST = 0xffff;
    private const int WM_SETTINGCHANGE = 0x001a;
    
    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    [DefaultDllImportSearchPaths(DllImportSearchPath.SafeDirectories)]
    public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, string lParam);
    
    //refresh taskbar to prevent blank (default) exe icon
    SendMessage((IntPtr)HWND_BROADCAST, WM_SETTINGCHANGE, IntPtr.Zero, "Policy");
    

    Hope this can help others who are experiencing the same problem.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.