Question

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

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

Était-ce utile?

La solution

Eh bien, après avoir cherché autour de StackOverflow (et j'adore déjà cet endroit), la plupart des problèmes étaient déjà passés. J'ai néanmoins réussi à trouver une réponse à mon problème.

Comment créer une ressource:

Dans mon cas, je veux créer une icône. Il s’agit d’un processus similaire, quel que soit le type de données que vous souhaitez ajouter en tant que ressource.

  • Cliquez avec le bouton droit sur le projet auquel vous souhaitez ajouter une ressource. Faites cela dans l'Explorateur de solutions. Sélectionnez les " Propriétés " option de la liste.
  • Cliquez sur le lien "Ressources". onglet.
  • Le premier bouton en haut de la barre vous permet de sélectionner le type de ressource que vous souhaitez ajouter. Il devrait commencer sur une chaîne. Si vous souhaitez ajouter une icône, cliquez dessus, puis 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à créée, vous pouvez aussi l'ajouter. Suivez les invites pour l'option que vous choisissez.
  • À ce stade, vous pouvez double-cliquer sur la ressource nouvellement ajoutée pour la modifier. Remarque: les ressources apparaissent également dans l'Explorateur de solutions et un double-clic est tout aussi efficace.

Comment utiliser une ressource:

Bien, nous avons notre nouvelle ressource et nous avons hâte d’avoir ces jolies icônes qui changent ... Comment faisons-nous cela? Heureusement pour nous, C # rend cela extrêmement facile.

Il existe une classe statique appelée Properties.Resources qui vous donne accès à toutes vos ressources. Mon code est donc devenu aussi simple que:

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

Fait! Fini! Tout est simple quand on sait comment, n'est-ce pas?

Autres conseils

Ce qui précède n'a pas fonctionné pour moi comme je m'y attendais avec Visual Studio 2010. Il ne m'a pas laissé accéder à Properties.Resources, a déclaré qu'il était inaccessible en raison de problèmes d'autorisations. 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 le fichier Resources.Designer.cs, où il y avait un getter automatique qui me permettait d'accéder à l'icône via MyNamespace.Properties.Resources. .NameFromAddingTheResource. Cela retourne un objet de type Icon, prêt à être utilisé.

La méthode ci-dessus fonctionne bien.

Une autre méthode (je suppose que le Web est ici) consiste à 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ée dans le fichier de ressources.

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

Pour récupérer des entrées spécifiques dans le codebehind, appelez simplement cette méthode: GetLocalResourceObject ([clé d'entrée de nom / ressource]).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top