0

我有一个使用 Winforms 并通过内置的 One click 发布的旧旧系统,我负责 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

4

1 回答 1

2

如果有什么安慰的话,我无法重现您的投诉。

我在资源中放了 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,而不是调试开始):

在此处输入图像描述

注意:右上角是我的任务栏

于 2020-10-22T17:46:53.127 回答