Comment créer et utiliser des ressources in.NET

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

Mon problème est que j'ai un NotifyIcon que je veux changer l'icône de la fonction de l'état du programme. Un problème commun, mais celui que j'ai eu du mal avec pendant une longue période.

144
demandé sur John Saunders 2008-09-18 11:21:24

3 réponses

Eh bien, après avoir cherché et bricolé divers points autour de StackOverflow (gee, j'aime déjà cet endroit), la plupart des problèmes étaient déjà passés cette étape. J'ai réussi à trouver 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, peu importe le type de données que vous souhaitez ajouter en tant que ressource.

  • cliquez-Droit sur le projet que vous souhaitez ajouter une ressource de. 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 vous permettra de sélectionner le type de ressource 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" dans la liste des options.
  • ensuite, passez au 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 que trop. Suivez les instructions pour l'option que vous choisissez.
  • à ce stade, vous pouvez double-cliquer sur la ressource nouvellement ajoutée pour la modifier. Notez que les ressources apparaissent également dans L'Explorateur de solutions, et un double-clic est tout aussi efficace

Comment utiliser une ressource.

Super, donc nous avons notre nouvelle ressource et nous sommes impatients d'avoir ces belles icônes changeantes... Comment faisons-nous cela? Eh bien, nous avons de la chance, C # rend cela extrêmement facile.

Il y a un statique classe appelée Properties.Resources qui vous donne accès à toutes vos ressources, donc 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?

253
répondu Matthew Scharley 2010-08-24 22:26:14

Ce qui précède ne fonctionnait pas vraiment pour moi comme je l'avais prévu avec Visual Studio 2010. Il ne me laisserait pas accéder aux propriétés.Ressources, a déclaré qu'il était inaccessible en raison de problèmes d'autorisation. J'ai finalement dû modifier les paramètres de persistance dans les propriétés de la ressource, puis j'ai trouvé comment y accéder via les ressources.Designer.fichier cs, où il y avait un getter automatique qui me permettait d'accéder à l'icône, via MyNamespace.Propriété.Ressources.NameFromAddingTheResource. Qui renvoie un objet de icône de type, prêt à utiliser.

8
répondu Quinxy von Besiex 2011-06-14 19:38:25

La méthode ci-dessus fonctionne bien.

Une autre méthode (je suppose que web ici) est de créer votre page. Ajouter des contrôles à la page. Ensuite, en mode conception, accédez à: outils>Générer une ressource locale. Un fichier de ressources apparaîtra automatiquement dans la solution avec tous les contrôles de la page mappés dans le fichier de ressources.

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

Pour récupérer des entrées spécifiques dans le codebehind, appelez simplement cette méthode: GetLocalResourceObject ([resource entry key / name]).

6
répondu Chuck Conway 2008-09-18 07:35:48