Efter att Visual Basic-studenter har lärt sig allt om slingor och villkorade uttalanden och subroutiner, är en av de nästa saker som de ofta frågar: "Hur lägger jag till en bitmapp, en .wav-fil, en anpassad markör eller någon annan specialeffekt?" Ett svar är resursfiler. När du lägger till en resursfil till ditt projekt är den integrerad för maximal körhastighet och minsta krångel när du paketerar och distribuerar din applikation.
Att använda resursfiler är inte det enda sättet att inkludera filer i ett VB-projekt, men det har verkliga fördelar. Du kan till exempel inkludera en bitmapp i en PictureBox-kontroll eller använda mciSendString Win32 API.
Microsoft definierar en resurs som "alla icke-körbara data som logiskt distribueras med ett program."
Det enklaste sättet att hantera resursfiler i ditt projekt är att välja fliken Resurser i projektegenskaperna. Du tar upp detta genom att dubbelklicka på Mitt projekt i Solution Explorer eller i dina projektegenskaper under menyposten Project.
Att använda resursfiler ger ytterligare en fördel: bättre globalisering. Resurser ingår normalt i din huvudmontering, men .NET låter dig också paketera resurser i satellitmonteringar. På så sätt uppnår du en bättre globalisering eftersom du bara inkluderar de satellitsammansättningar som behövs. Microsoft gav varje språkdialekt en kod. Till exempel indikeras den amerikanska dialekten på engelska med strängen "en-US", och den schweiziska dialekten av franska indikeras med "fr-CH." Dessa koder identifierar satellitsammansättningarna som innehåller kulturspecifika resursfiler. När ett program körs använder Windows automatiskt resurserna i satellitsammansättningen med den kultur som bestäms från Windows-inställningarna.
Eftersom resurser är en egenskap av lösningen i VB.Net, kommer du åt dem precis som andra egenskaper: med namn med hjälp av objektet My.Resources. För att illustrera, undersöka den här applikationen utformad för att visa ikoner för Aristoteles fyra element: luft, jord, eld och vatten.
Först måste du lägga till ikonerna. Välj fliken Resurser från dina projektegenskaper. Lägg till ikoner genom att välja Lägg till befintlig fil på rullgardinsmenyn Lägg till resurser. När en resurs har lagts till ser den nya koden så här:
Privat subradioButton1_CheckedChanged (...
Hanterar MyBase.Load
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = "Earth"
Avsluta under
Om du använder Visual Studio kan du bädda in resurser direkt i din projektmontering. Dessa steg lägger till en bild direkt till ditt projekt:
Du kan sedan använda bitmappen direkt i kod som den här (där bitmappen var den tredje, index nummer 2 i enheten).
Dim res () As String = GetType (Form1) .Assemble.GetManifestResourceNames ()
PictureBox1.Image = Nytt system.Drawing.Bitmap (_
GetType (Form1) .Assembly.GetManifestResourceStream (res (2)))
Även om dessa resurser är inbäddade som binära data direkt i huvudsamlingen eller i satellitmonteringsfiler, när du bygger ditt projekt i Visual Studio, refereras de till av ett XML-baserat filformat som använder tillägget .resx. Här är till exempel ett utdrag från .resx-filen som du just skapade:
type = "System.Resources.ResXFileRef,
System.Windows.Forms ">
... \ Resurser \ CLOUD.ICO; System.Drawing.Icon,
System.Drawing, version = 2.0.0.0,
Kultur = neutral,
PublicKeyToken = b03f5f7f11d50a3a
Eftersom det bara är text-XML-filer kan en .resx-fil inte användas direkt av ett .NET-ramprogram. Den måste konverteras till en binär ".resources" -fil och lägga till den i din applikation. Detta jobb utförs av ett verktygsprogram som heter Resgen.exe. Du kanske vill göra detta för att skapa satellitsammansättningar för globalisering. Du måste köra resgen.exe från en kommandotolk.
"Resurseröversikt." Microsoft, 2015.