212 votes

Comment créer et utiliser des ressources dans .NET

Comment créer une ressource que je peux référencer et utiliser facilement dans différentes parties de mon programme?

Mon problème spécifique est que j'ai un NotifyIcon que je veux changer l'icône en fonction de l'état du programme. Un problème commun, mais avec lequel je lutte depuis longtemps.

354voto

Matthew Scharley Points 43262

Ainsi, après une recherche autour de et de rassembler de rassembler les différents points de autour de StackOverflow (gee, j'aime cet endroit, déjà), la plupart des problèmes ont déjà passé ce stade. Je n'ai réussi à travailler sur une réponse à mon problème.

Comment créer une ressource.

Dans mon cas, je veux créer une icône. C'est un processus similaire, quel que soit le type de données que vous souhaitez ajouter en tant que ressource.

  • Cliquez-droit sur le projet que vous souhaitez ajouter une ressource. Cela, dans l'Explorateur de solutions. Sélectionnez l'option "Propriétés" dans la liste.
  • Cliquez sur l'onglet "Ressources".
  • Le premier bouton en haut de la barre va vous permettre de sélectionner le type de ressources que vous souhaitez ajouter. Il devrait démarrer sur la chaîne. Nous voulons ajouter une icône, alors cliquez dessus et sélectionnez "Icônes" à partir de la liste des options.
  • Ensuite, passez à la deuxième bouton "Ajouter une Ressource". Vous pouvez soit ajouter une nouvelle ressource, ou si vous avez déjà une icône déjà fait, vous pouvez l'ajouter aussi. Suivez les invites pour quelle que soit l'option que vous choisissez.
  • À ce stade, vous pouvez double-cliquer sur la nouvelle ressource pour le modifier. Remarque, les ressources s'affichent également dans l'Explorateur de solutions, puis en double-cliquant, il est tout aussi efficace

Comment utiliser une ressource.

Idéal, donc, nous avons notre nouvelle ressource et nous sommes les démangeaisons d'avoir ces belles modification des icônes... Comment faisons-nous cela? Eh bien, bonne chance, C# rend cette extrêmement facile.

Il y a une classe statique appelée Properties.Resources qui vous donne accès à l'ensemble de vos ressources, de sorte que mon code a fini par être aussi simple que:

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

Fait! Finis! Tout est simple quand vous savez comment, non?

10voto

Quinxy von Besiex Points 352

Le ci-dessus ne fait pas travailler pour moi, comme je l'avais prévu avec Visual Studio 2010. Il ne serait pas me laisser accéder à des Propriétés.Ressources, a dit qu'il était inaccessible à cause de problèmes d'autorisation. J'ai finalement dû changer la Persistance des paramètres dans les propriétés de la ressource et puis j'ai trouvé comment y accéder par le biais des Ressources.Le concepteur.cs fichier, où il avait automatique de lecture que me laisser accéder à l'icône, via MyNamespace.Les propriétés.Les ressources.NameFromAddingTheResource. Qui renvoie un objet de type Icône, prêt à l'utiliser.

8voto

Chuck Conway Points 10293

La méthode ci-dessus fonctionne bien.

Une autre méthode (je suis en supposant web ici) est de créer votre page. Ajouter des contrôles à la page. Puis, tandis que dans le mode design, allez dans: Outils>Générer la Ressource Locale. Un fichier de ressources sera automatiquement apparaître dans la solution de toutes les commandes dans la page mappé dans le fichier de ressources.

Afin de créer des ressources pour les autres langues, ajouter les 4 caractères de la langue à la fin du nom de fichier, avant l'extension (Compte.aspx.fr-US.resx, Compte.aspx.es-es.resx...etc).

Pour récupérer les entrées spécifiques dans le code-behind, il suffit d'appeler cette méthode: GetLocalResourceObject([ressource clé d'entrée/nom]).

0voto

Assurez-vous qu'après avoir ajouté l'ICON, vous l'avez rendu public à partir de l'option ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X