Hva er VB.Net-ressurser og hvordan brukes de?

Finger som berører en skjerm dekket med ikoner.

geralt/Pixabay





Etter at Visual Basic-studenter har lært alt om looper og betingede utsagn og subrutiner, er en av de neste tingene de ofte spør: 'Hvordan legger jeg til en punktgrafikk, en .wav-fil, en tilpasset markør eller en annen spesialeffekt?' Ett svar er ressursfiler. Når du legger til en ressursfil i prosjektet ditt, er den integrert for maksimal utførelseshastighet og minimalt med problemer ved pakking og distribusjon av applikasjonen.

Å bruke ressursfiler er ikke den eneste måten å inkludere filer i en VB prosjekt, men det har reelle fordeler. Du kan for eksempel inkludere en bitmap i en PictureBox-kontroll eller bruke mciSendString Win32 API.



Microsoft definerer en ressurs som 'alle ikke-kjørbare data som er logisk distribuert med en applikasjon.'

Den enkleste måten å administrere ressursfiler i prosjektet på er å velge kategorien Ressurser i prosjektegenskapene. Dette får du frem ved å dobbeltklikke på Mitt prosjekt i Solution Explorer eller i prosjektegenskapene dine under menypunktet Prosjekt.



Typer av ressursfiler

  • Strenger
  • Bilder
  • Ikoner
  • Lyd
  • Filer
  • Annen

Ressursfiler forenkler globaliseringen

Ved hjelp av ressursfiler legger til en annen fordel: bedre globalisering. Ressurser er vanligvis inkludert i hovedsammenstillingen din, men .NET lar deg også pakke ressurser inn i satellittsamlinger. På denne måten oppnår du bedre globalisering fordi du bare inkluderer satellittenhetene som trengs. Microsoft ga hver språkdialekt en kode. For eksempel er den amerikanske dialekten av engelsk angitt med strengen 'en-US', og den sveitsiske dialekten av fransk er indikert med 'fr-CH.' Disse kodene identifiserer satellittsammenstillingene som inneholder kulturspesifikke ressursfiler. Når en applikasjon kjører, bruker Windows automatisk ressursene som finnes i satellittsammenstillingen med kulturen bestemt fra Windows-innstillingene.

VB.Net Legg til ressursfiler

Fordi ressurser er en egenskap for løsningen i VB.Net, får du tilgang til dem på samme måte som andre egenskaper: ved navn ved å bruke My.Resources-objektet. For å illustrere, undersøk detteapplikasjondesignet for å vise ikoner for Aristoteles fire elementer: luft, jord, ild og vann.

Først må du legge til ikonene. Velg kategorien Ressurser fra Prosjektegenskaper. Legg til ikoner ved å velge Legg til eksisterende fil fra rullegardinmenyen Legg til ressurser. Etter at en ressurs er lagt til, ser den nye koden slik ut:

Private Sub RadioButton1_CheckedChanged( ...
Håndterer MyBase.Load
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = 'Earth'
End Sub

Innebygging med Visual Studio

Hvis du bruker Visual Studio, kan du bygge inn ressurser direkte i prosjektsammenstillingen. Disse trinnene legger til et bilde direkte til prosjektet ditt:



  • Høyreklikk prosjektet i Solution Explorer. Klikk Legg til og klikk deretter Legg til eksisterende element.
  • Bla til bildefilen og klikk Åpne.
  • Vis egenskapene for bildet som nettopp ble lagt til.
  • Sett egenskapen Bygghandling til Embedded Resource.

Du kan da bruke punktgrafikk direkte i kode som denne (der punktgrafikk var den tredje, indeksnummer 2 i sammenstillingen).

Dim res() As String = GetType(Form1).Assembly.GetManifestResourceNames()
PictureBox1.Image = New System.Drawing.Bitmap( _
GetType(Form1).Assembly.GetManifestResourceStream(res(2)))

Selv om disse ressursene er innebygd som binær data direkte i hovedsammenstillingen eller i satellittmonteringsfiler, når du bygger prosjektet ditt i Visual Studio, refereres de til av et XML-basert filformat som bruker filtypen .resx. For eksempel, her er et utdrag fra .resx-filen du nettopp opprettet:




type='System.Resources.ResXFileRef,
System.Windows.Forms'>
..RessurserCLOUD.ICO;System.Drawing.Icon,
System.Drawing, Versjon=2.0.0.0,
Kultur = nøytral,
PublicKeyToken=b03f5f7f11d50a3a

Fordi de bare er tekst-XML-filer, kan ikke en .resx-fil brukes direkte av en .NET-rammeapplikasjon. Den må konverteres til en binær '.resources'-fil, og legge den til i applikasjonen din. Denne jobben utføres av et hjelpeprogram kalt Resgen.exe. Du vil kanskje gjøre dette for å lage satellittsamlingene for globalisering. Du må kjøre resgen.exe fra en ledetekst.

Kilde

'Ressursoversikt.' Microsoft, 2015.