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

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

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

вопрос задан 18.09.2008
Matthew Scharley
79394 репутация

3 ответов


  • 253 рейтинг

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

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

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

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

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

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

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

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

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

    ответ дан Matthew Scharley, с репутацией 79394, 18.09.2008
  • 8 рейтинг

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

    ответ дан Quinxy von Besiex, с репутацией 683, 14.06.2011
  • 6 рейтинг

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

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

    Чтобы создать ресурсы для других языков, добавьте 4-символьный язык в конец имени файла перед расширением (Учетная запись. ASPX. ан-США. resx, Аккаунт. ASPX. ES-ES. Resx. , , так далее).

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

    ответ дан Chuck Conway, с репутацией 13343, 18.09.2008