Wat zijn VB.Net-bronnen en hoe worden ze gebruikt?

Nadat Visual Basic-studenten alles leren over lussen en voorwaardelijke instructies en subroutines, is een van de volgende dingen die ze vaak vragen: "Hoe voeg ik een bitmap, een .wav-bestand, een aangepaste cursor of een ander speciaal effect toe?" Een antwoord is bronbestanden. Wanneer u een bronbestand toevoegt aan uw project, wordt het geïntegreerd voor maximale uitvoeringssnelheid en minimale rompslomp bij het verpakken en implementeren van uw applicatie.

Het gebruik van bronbestanden is niet de enige manier om bestanden in een VB-project op te nemen, maar het heeft echte voordelen. U kunt bijvoorbeeld een bitmap opnemen in een PictureBox-besturingselement of de mciSendString Win32 API gebruiken. 

Microsoft definieert een bron als "alle niet-uitvoerbare gegevens die logisch worden geïmplementeerd met een toepassing."

De eenvoudigste manier om bronbestanden in uw project te beheren, is door het tabblad Bronnen in de projecteigenschappen te selecteren. U brengt dit naar voren door te dubbelklikken op Mijn project in Solution Explorer of in uw projecteigenschappen onder het menu-item Project.

Typen bronbestanden

  • strings
  • Afbeeldingen 
  • Icons
  • audio
  • bestanden
  • anders

Bronbestanden vereenvoudigen globalisering

Het gebruik van bronbestanden voegt nog een voordeel toe: betere globalisering. Bronnen worden normaal gesproken opgenomen in uw hoofdassemblage, maar met .NET kunt u ook bronnen in satellietassemblages verpakken. Op deze manier bereikt u een betere globalisering omdat u alleen de satellietassemblages opneemt die nodig zijn. Microsoft gaf elke taaldialect een code. Het Amerikaanse dialect van het Engels wordt bijvoorbeeld aangeduid met de tekenreeks 'en-US' en het Zwitserse dialect van het Frans wordt aangeduid met 'fr-CH'. Deze codes identificeren de satellietassemblages die cultuurspecifieke bronbestanden bevatten. Wanneer een toepassing wordt uitgevoerd, gebruikt Windows automatisch de bronnen in de satellietassemblage met de cultuur die wordt bepaald op basis van de Windows-instellingen.

VB.Net Bronbestanden toevoegen

Omdat bronnen een eigenschap zijn van de oplossing in VB.Net, hebt u toegang tot deze bronnen net als andere eigenschappen: op naam met behulp van het object My.Resources. Ter illustratie, bekijk deze applicatie ontworpen om pictogrammen weer te geven voor de vier elementen van Aristoteles: lucht, aarde, vuur en water.

Eerst moet u de pictogrammen toevoegen. Selecteer het tabblad Bronnen in uw Projecteigenschappen. Voeg pictogrammen toe door Bestaand bestand toevoegen te kiezen in het vervolgkeuzemenu Bronnen toevoegen. Nadat een bron is toegevoegd, ziet de nieuwe code er als volgt uit:

Private Sub RadioButton1_CheckedChanged (…
Handgrepen MyBase.Load
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = "Earth"
Einde Sub

Inbedden met Visual Studio

Als u Visual Studio gebruikt, kunt u bronnen rechtstreeks in uw projectassemblage insluiten. Met deze stappen wordt een afbeelding rechtstreeks aan uw project toegevoegd:

  • Klik met de rechtermuisknop op het project in Solution Explorer. Klik op Toevoegen en vervolgens op Bestaand item toevoegen.
  • Blader naar uw afbeeldingsbestand en klik op Openen.
  • Geef de eigenschappen weer voor de afbeelding die zojuist is toegevoegd.
  • Stel de eigenschap Build Action in op Embedded Resource.

U kunt de bitmap vervolgens direct in deze code gebruiken (waarbij de bitmap de derde was, indexnummer 2 in de assembly).

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

Hoewel deze bronnen als binaire gegevens rechtstreeks in de hoofdassemblage of in satellietassemblagebestanden zijn ingesloten, wordt bij het bouwen van uw project in Visual Studio naar een XML-gebaseerde bestandsindeling met de extensie .resx verwezen. Hier is bijvoorbeeld een fragment uit het .resx-bestand dat u zojuist hebt gemaakt:


Type = "System.Resources.ResXFileRef,
System.Windows.Forms ">
... \ Resources \ CLOUD.ICO; System.Drawing.Icon,
System.Drawing, versie = 2.0.0.0,
Cultuur = neutraal,
PublicKeyToken = b03f5f7f11d50a3a

Omdat het alleen tekst-XML-bestanden zijn, kan een .resx-bestand niet rechtstreeks worden gebruikt door een .NET Framework-toepassing. Het moet worden geconverteerd naar een binair ".resources" -bestand en aan uw toepassing worden toegevoegd. Deze taak wordt uitgevoerd door een hulpprogramma met de naam Resgen.exe. Misschien wilt u dit doen om de satellietassemblages te maken voor globalisering. U moet resgen.exe uitvoeren vanaf een opdrachtprompt.

Bron

"Bronnenoverzicht." Microsoft, 2015.