2008-09-18 3 views
134

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

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

ответ

232

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

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

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

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

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

Отлично, поэтому у нас есть наш новый ресурс, и мы испытываем зуд, чтобы иметь эти прекрасные сменные значки ... Как мы это делаем? Ну, нам повезло, C# делает это очень легко.

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

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

Готово! Finis! Все просто, когда вы знаете, как, нет?

+0

спасибо за это, искал то же самое. есть ли способ встраивать файлы .ico в исполняемый файл, чтобы они не отображались как отдельные файлы? Надеюсь, мой вопрос имеет смысл. привет, – 2011-08-07 07:46:51

5

Вышеуказанный способ работает хорошо.

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

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

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

7

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

Смежные вопросы