«Пользователь должен выбрать значок 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();
}