winforms 你能用编程的方式改变notifyIcon的图标吗?

gajydyqb  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个WinForms应用程序,它有一个小的安装程序,可以写入Propertys.Settings。用户需要从硬盘上选择他的notifyIcon图标。我不能用

notifyIcon1.Icon = Properties.Settings.Default.userIcon;

因为它会吐出来
无法从“字符串”转换为“系统.绘图.图标”。
有人能纠正我吗?

gzjq41n4

gzjq41n41#

“用户需要从硬盘驱动器中选择其notifyIcon图标”。
图标是在文件名的某个地方吗?如果用户从硬盘驱动器中选择了一个图标,他实际上选择了一个包含图标的文件吗?
如果是这样的话,你应该将Properties.Settings.Default.UserIcon定义为一个字符串,并保存文件名,给予你的窗口一个属性来获取和设置UserIcon。

private string UserIconFileName
{
    get => Properties.Settings.Default.UserIcon;
    set => properties.Settings.Default.UserIcon = value;
}

private Icon LoadUserIcon
{
    string userIconFileName = this.UserIconFileName
    if (!File.Exists(userIconFileName))
    {
        // TODO: decide what to do if there is no such file
    }
    else
    {
        return new Icon(userIconFileName);
    }
}

关闭程序时不要忘记保存属性:

private void OnFormClosed(object sender, FormClosedEventArgs e)
{
    Properties.Settings.Default.Save();
}

相关问题