it-swarm.it

Come creare e utilizzare risorse in .NET

Come posso creare facilmente una risorsa a cui posso fare riferimento e utilizzare in varie parti del mio programma?

Il mio problema specifico è che ho un NotifyIcon di cui voglio cambiare l'icona a seconda dello stato del programma. Un problema comune, ma uno con cui ho lottato per molto tempo.

168
Matthew Scharley

Bene, dopo aver cercato e messo insieme vari punti da StackOverflow (accidenti, adoro già questo posto), la maggior parte dei problemi erano già passati in questa fase. Sono riuscito a trovare una risposta al mio problema.

Come creare una risorsa:

Nel mio caso, voglio creare un'icona. È un processo simile, indipendentemente dal tipo di dati che si desidera aggiungere come risorsa.

  • Fare clic con il tasto destro del mouse sul progetto a cui si desidera aggiungere una risorsa. Fallo in Esplora soluzioni. Seleziona l'opzione "Proprietà" dall'elenco.
  • Fai clic sulla scheda "Risorse".
  • Il primo pulsante nella parte superiore della barra ti consentirà di selezionare il tipo di risorsa che desideri aggiungere. Dovrebbe iniziare su una stringa. Vogliamo aggiungere un'icona, quindi fai clic su di essa e seleziona "Icone" dall'elenco di opzioni.
  • Successivamente, passa al secondo pulsante, "Aggiungi risorsa". Puoi aggiungere una nuova risorsa o se hai già un'icona già creata, puoi anche aggiungere quella. Segui le istruzioni per qualsiasi opzione tu scelga.
  • A questo punto, puoi fare doppio clic sulla risorsa appena aggiunta per modificarla. Nota, le risorse vengono visualizzate anche in Esplora soluzioni e il doppio clic è altrettanto efficace.

Come utilizzare una risorsa:

Fantastico, quindi abbiamo la nostra nuova risorsa e non vediamo l'ora di avere quelle deliziose icone che cambiano ... Come possiamo farlo? Bene, fortunati noi, C # rende questo estremamente facile.

Esiste una classe statica chiamata Properties.Resources che ti dà accesso a tutte le tue risorse, quindi il mio codice ha finito per essere semplice come:

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

Fatto! Finito! Tutto è semplice quando sai come, no?

287
Matthew Scharley

Quanto sopra non ha funzionato per me come mi aspettavo con Visual Studio 2010. Non mi avrebbe permesso di accedere a Properties.Resources, ha detto che era inaccessibile a causa di problemi di autorizzazione. Alla fine ho dovuto modificare le impostazioni di Persistenza nelle proprietà della risorsa e poi ho scoperto come accedervi tramite il file Resources.Designer.cs, dove aveva un getter automatico che mi permetteva di accedere all'icona, tramite MyNamespace.Properties.Resources .NameFromAddingTheResource. Ciò restituisce un oggetto di tipo Icona, pronto per essere utilizzato.

8

Il metodo sopra funziona bene.

Un altro metodo (suppongo che il Web qui) sia quello di creare la tua pagina. Aggiungi i controlli alla pagina. Quindi, in modalità progettazione, vai a: Strumenti> Genera risorsa locale. Un file di risorse verrà visualizzato automaticamente nella soluzione con tutti i controlli nella pagina mappati nel file di risorse.

Per creare risorse per altre lingue, aggiungere la lingua di 4 caratteri alla fine del nome del file, prima dell'estensione (Account.aspx.en-US.resx, Account.aspx.es-ES.resx ... ecc.).

Per recuperare voci specifiche nel codebehind, è sufficiente chiamare questo metodo: GetLocalResourceObject ([chiave/nome voce risorsa]).

6
Chuck Conway