Czym są zasoby VB.Net i jak są używane?

Palcem dotykającym ekranu pokrytego ikonami.

geralt/Pixabay





Po tym, jak uczestnicy kursu Visual Basic dowiedzą się wszystkiego o pętlach, instrukcjach warunkowych i podprogramach, jedną z następnych rzeczy, o które często się pytają, jest: „Jak dodać bitmapę, plik .wav, niestandardowy kursor lub inny efekt specjalny?”. Jedną z odpowiedzi są pliki zasobów. Po dodaniu pliku zasobów do projektu jest on zintegrowany w celu uzyskania maksymalnej szybkości wykonywania i minimum problemów podczas pakowania i wdrażania aplikacji.

Korzystanie z plików zasobów nie jest jedynym sposobem dołączania plików do VB projekt, ale ma realne zalety. Na przykład możesz dołączyć mapę bitową do kontrolki PictureBox lub użyć interfejsu API mciSendString Win32.



Firma Microsoft definiuje zasób jako „dowolne niewykonywalne dane, które są logicznie wdrożone z aplikacją”.

Najłatwiejszym sposobem zarządzania plikami zasobów w projekcie jest wybranie karty Zasoby we właściwościach projektu. Możesz to wywołać, klikając dwukrotnie Mój projekt w Eksploratorze rozwiązań lub we właściwościach projektu w elemencie menu Projekt.



Rodzaje plików zasobów

  • Smyczki
  • Obrazy
  • Ikony
  • Audio
  • Akta
  • Inny

Pliki zasobów upraszczają globalizację

Za pomocą pliki zasobów dodaje kolejną zaletę: lepszą globalizację. Zasoby są zwykle zawarte w zestawie głównym, ale platforma .NET umożliwia również pakowanie zasobów w zestawy satelickie. W ten sposób uzyskujesz lepszą globalizację, ponieważ uwzględniasz tylko potrzebne zestawy satelickie. Microsoft dał każdemu dialektowi językowemu kod. Na przykład amerykański dialekt języka angielskiego jest oznaczony ciągiem „en-US”, a szwajcarski dialekt francuskiego jest oznaczony „fr-CH”. Te kody identyfikują zestawy satelickie, które zawierają pliki zasobów specyficzne dla kultury. Po uruchomieniu aplikacji system Windows automatycznie używa zasobów zawartych w zestawie satelickim z kulturą określoną na podstawie ustawień systemu Windows.

VB.Net Dodaj pliki zasobów

Ponieważ zasoby są właściwością rozwiązania w VB.Net, uzyskujesz do nich dostęp tak samo, jak do innych właściwości: po nazwie za pomocą obiektu My.Resources. Aby to zilustrować, przeanalizuj toaplikacjazaprojektowany do wyświetlania ikon czterech żywiołów Arystotelesa: powietrza, ziemi, ognia i wody.

Najpierw musisz dodać ikony. Wybierz kartę Zasoby we właściwościach projektu. Dodaj ikony, wybierając opcję Dodaj istniejący plik z menu rozwijanego Dodaj zasoby. Po dodaniu zasobu nowy kod wygląda tak:

Private Sub RadioButton1_CheckedChanged( ...
Obsługuje MyBase.Load
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = 'Ziemia'
Napis końcowy

Osadzanie w programie Visual Studio

Jeśli używasz programu Visual Studio, możesz osadzić zasoby bezpośrednio w zestawie projektu. Poniższe kroki dodają obraz bezpośrednio do projektu:



  • Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań. Kliknij Dodaj, a następnie kliknij Dodaj istniejący element.
  • Przejdź do pliku obrazu i kliknij Otwórz.
  • Wyświetl właściwości dodanego właśnie obrazu.
  • Ustaw właściwość Akcja kompilacji na Zasób osadzony.

Następnie możesz użyć mapy bitowej bezpośrednio w kodzie w ten sposób (gdzie mapa bitowa była trzecią, indeks numer 2 w zestawie).

Dim res() As String = GetType(Form1).Assembly.GetManifestResourceNames()
PictureBox1.Image = Nowy system.Rysunek.Bitmap( _
GetType(Form1).Assembly.GetManifestResourceStream(res(2)))

Chociaż te zasoby są osadzone jako dwójkowy dane bezpośrednio w zestawie głównym lub w plikach zestawów satelickich, podczas kompilowania projektu w programie Visual Studio, odwołuje się do nich format pliku oparty na języku XML, który używa rozszerzenia resx. Na przykład, oto fragment z właśnie utworzonego pliku resx:




type='System.Resources.ResXFileRef,
System.Windows.Forms'>
..ResourcesCLOUD.ICO;System.Drawing.Icon,
Rysunek systemowy, Wersja=2.0.0.0,
Kultura=neutralna,
PublicKeyToken=b03f5f7f11d50a3a

Ponieważ są to tylko tekstowe pliki XML, plik resx nie może być używany bezpośrednio przez aplikację .NET Framework. Musi zostać przekonwertowany na binarny plik '.resources', dodając go do swojej aplikacji. Zadanie to wykonuje program narzędziowy o nazwie Resgen.exe. Możesz to zrobić, aby utworzyć zestawy satelickie do globalizacji. Musisz uruchomić resgen.exe z wiersza polecenia.

Źródło

„Przegląd zasobów”. Microsoft, 2015.