Domanda

Come posso creare una risorsa a cui posso fare riferimento e utilizzare facilmente 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 con cui combatto da molto tempo.

È stato utile?

Soluzione

Bene, dopo aver cercato in giro e messo insieme vari punti da StackOverflow (accidenti, adoro già questo posto), la maggior parte dei problemi avevano già superato questa fase.Sono comunque 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 desideri aggiungere come risorsa.

  • Fai clic con il pulsante destro del mouse sul progetto a cui desideri aggiungere una risorsa.Eseguire questa operazione in Esplora soluzioni.Seleziona l'opzione "Proprietà" dall'elenco.
  • Fare 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 con una stringa.Vogliamo aggiungere un'icona, quindi fai clic su di essa e seleziona "Icone" dall'elenco delle opzioni.
  • Successivamente, passa al secondo pulsante, "Aggiungi risorsa".Puoi aggiungere una nuova risorsa oppure, se hai già creato un'icona, puoi aggiungere anche quella.Segui le istruzioni per qualunque opzione tu scelga.
  • A questo punto è possibile fare doppio clic sulla risorsa appena aggiunta per modificarla.Tieni presente che le risorse vengono visualizzate anche in Solution Explorer e fare doppio clic è altrettanto efficace.

Come utilizzare una risorsa:

Ottimo, abbiamo la nostra nuova risorsa e non vediamo l'ora di avere quelle adorabili icone che cambiano...Come lo facciamo?Bene, fortunati noi, C# lo rende estremamente semplice.

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

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

Fatto!Finito!Tutto è semplice quando sai come fare, non è vero?

Altri suggerimenti

Quanto sopra in realtà non ha funzionato per me come mi aspettavo con Visual Studio 2010.Non mi permetteva di accedere a Properties.Resources, diceva 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 trovato 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 Icon, pronto per l'uso.

Il metodo sopra funziona bene.

Un altro metodo (presumo il web qui) è creare la tua pagina.Aggiungi controlli alla pagina.Quindi, mentre sei in modalità progettazione, vai a:Strumenti>Genera risorsa locale.Un file di risorse apparirà automaticamente nella soluzione con tutti i controlli nella pagina mappati nel file di risorse.

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top