Вопрос

Как мне создать ресурс, на который можно будет легко ссылаться и использовать его в различных частях моей программы?

Моя конкретная проблема заключается в том, что у меня есть NotifyIcon, значок которого я хочу изменить в зависимости от состояния программы.Распространенная проблема, но я борюсь с ней уже долгое время.

Это было полезно?

Решение

Что ж, после поиска и объединения различных моментов со StackOverflow (ну и дела, мне уже нравится это место), большинство проблем уже прошли эту стадию.Однако мне удалось найти ответ на мою проблему.

Как создать ресурс:

В моем случае я хочу создать значок.Это аналогичный процесс, независимо от того, какой тип данных вы хотите добавить в качестве ресурса.

  • Щелкните правой кнопкой мыши проект, в который вы хотите добавить ресурс.Сделайте это в обозревателе решений.Выберите из списка опцию «Свойства».
  • Откройте вкладку «Ресурсы».
  • Первая кнопка в верхней части панели позволит вам выбрать тип ресурса, который вы хотите добавить.Он должен начинаться со строки.Мы хотим добавить значок, поэтому нажмите на него и выберите «Значки» из списка вариантов.
  • Затем перейдите ко второй кнопке «Добавить ресурс».Вы можете либо добавить новый ресурс, либо, если у вас уже есть значок, вы также можете добавить его.Следуйте подсказкам для любого варианта, который вы выберете.
  • На этом этапе вы можете дважды щелкнуть вновь добавленный ресурс, чтобы отредактировать его.Обратите внимание, что ресурсы также отображаются в обозревателе решений, и двойной щелчок там не менее эффективен.

Как использовать ресурс:

Отлично, у нас есть новый ресурс, и нам не терпится увидеть эти милые меняющиеся значки...Как мы это делаем?Что ж, нам повезло, C# делает это чрезвычайно простым.

Существует статический класс под названием Properties.Resources это дает вам доступ ко всем вашим ресурсам, поэтому мой код оказался таким простым:

paused = !paused;
if (paused)
    notifyIcon.Icon = Properties.Resources.RedIcon;
else
    notifyIcon.Icon = Properties.Resources.GreenIcon;

Сделанный!Законченный!Все просто, когда знаешь как, не так ли?

Другие советы

Вышеупомянутое на самом деле не сработало для меня, как я ожидал от Visual Studio 2010.Он не позволил мне получить доступ к Properties.Resources, сказал, что он недоступен из-за проблем с разрешениями.В конечном итоге мне пришлось изменить настройки постоянства в свойствах ресурса, а затем я нашел, как получить к нему доступ через файл Resources.Designer.cs, где у него был автоматический метод получения, позволяющий мне получить доступ к значку через MyNamespace.Properties.Resources. .NameFromAddingTheResource.Это возвращает объект типа Icon, готовый к использованию.

Вышеописанный метод работает хорошо.

Другой метод (я предполагаю, что здесь используется Интернет) — создать свою страницу.Добавьте элементы управления на страницу.Затем, находясь в режиме разработки, перейдите к:Инструменты>Создать локальный ресурс.Файл ресурсов автоматически появится в решении со всеми элементами управления на странице, сопоставленными с файлом ресурсов.

Чтобы создать ресурсы для других языков, добавьте четырехсимвольный язык в конец имени файла перед расширением (Account.aspx.en-US.resx, Account.aspx.es-ES.resx... и т. д.).

Чтобы получить определенные записи в выделенном коде, просто вызовите этот метод:GetLocalResourceObject([ключ/имя записи ресурса]).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top