[英]C# Winforms change taskbar icon
我有一个旧的遗留系统,它使用 Winforms 并通过内置的一键式发布,我负责 3 个不同的安装,每个安装都有自己的数据库,所以它被设置为当点击不同的系统时,它检查 isCompany1 并将相应地设置 Favicon,因此当在应用程序窗口中完成部署时,图标和清单设置为正确的 ICO,安装后 .exe 图标将在那里设置,
但是,我正在尝试将所有这些都内联,因为当我们调试 drop 时,会询问我们想要连接到哪个数据库,并且根据它的不同,它会进行不同的设置。 在 VS 中运行时,任务栏中的图标将根据动态 Favicon 更改,但是当它与这个新选择解除时,它不会改变,(它会在第一次加载时改变一次,然后不会再次改变)
问题是一些用户需要访问不同的实例,所以希望底部有不同的图标,但它不会改变任务菜单,但其他所有东西,如 ALT-TAB 和控制面板图标都在改变,
所有表单都链接到一个基本表单并调用它:
if (App.IsCompany1)
{
this.Icon = new Icon("Resources\\Company1.ico");
}
else if (App.Company2)
{
this.Icon = new Icon("Resources\\Company2.ico");
}
else if (App.Company3)
{
this.Icon = new Icon("Resources\\Company3.ico");
}
因为我说过这会改变一切但不会改变任务栏,但会来自 VS 调试,
我确保 .ico 具有所有尺寸,通过在每个尺寸上写下它们的尺寸,并且它们正确显示任务栏和 ALT-TAB 都使用 32x32
如果有任何安慰,我无法重现您的投诉。
我在资源中放了 3 个图标,在表单上放了一个按钮,代码如下:
private int iconum = 0;
private Icon[] icons = new[] { Properties.Resources.icon1, Properties.Resources.icon2, Properties.Resources.icon3 };
private void button1_Click(object sender, EventArgs e)
{
this.Icon = icons[iconum++ % icons.Length];
}
它在每次单击按钮时一遍又一遍地循环浏览主窗体标题栏和 Windows 任务栏中的图标(确保也运行发布版构建的 exe,而不是调试启动):
注意:右上角的东西是我的任务栏
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.