Visual Basic maken . NET , of VB.NET , is een programmeertaal geïmplementeerd op het . NET Framework . U kunt VB.NET gebruiken om complexe vormen te creëren . Echter , een formulier gemaakt voor de standaard VGA resolutie ( 640 x 480 ) is slechts een deel van het scherm met een hogere resolutie . Hoewel dit normaal is , kunt u het formulier aan een grootte en positie evenredig met de resolutie hebben . Deze formulieren worden resolutieonafhankelijke frames genoemd en zijn relatief eenvoudig te maken . Wat je nodig hebt Visual Basic , elke versie Toon Meer Aanwijzingen Klik met de rechtermuisknop op het bureaublad en kies 'Eigenschappen'. 1 Ga naar de tab ' Settings ' en wijzig de schermresolutie om " 800 x 600 . " U zult dit kleine resolutie gebruiken om de resolutie - onafhankelijke kader te creëren . Open Visual Studio 2 en start een nieuw project . De " Form1 " formulier wordt automatisch aangemaakt 3 Ga naar module van het formulier en plak de code om het formulier resolutie - onafhankelijk te maken : . Optie Explicit Dim MijnFormulier Zoals FRMSIZE Dim DesignX als Geheel Dim designy als Geheel Private Sub Form_Load ( ) Dim ScaleFactorX Zoals Single , ScaleFactorY zoals Single ' Schaalfactoren ' grootte van formulier in Pixels bij ontwerp resolutie DesignX = 800 designy = 600 RePosForm = True ' Vlag voor positionering Vorm DoResize = " Vlag voor Resize Event ' False Stel het scherm waardeert Xtwips = Screen.TwipsPerPixelX Ytwips = Screen.TwipsPerPixelY Ypixels = Screen.Height /Ytwips ' Y Pixel resolutie Xpixels = screen.width /Xtwips ' X pixel resolutie "Bepaal schalingsfactoren ScaleFactorX = ( Xpixels /DesignX ) ScaleFactorY = ( Ypixels /designy ) scaleMode = 1 ' twips ' Exit Sub ' uncomment om te zien hoe Form1 eruit ziet zonder resizen < br > Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me Label1.Caption = " Huidige resolutie is " & Str $ ( Xpixels ) + _ " door " + Str $ ( Ypixels ) < br MyForm.Height > = Me.Height ' Onthoud de huidige omvang MyForm.Width = Me.Width End Sub Private Sub Form_Resize ( ) < br Dim ScaleFactorX > Zoals Single , ScaleFactorY Zoals Single Als Niet DoResize dan ' To oneindige lus DoResize voorkomen = True Exit Sub End If RePosForm = False ScaleFactorX = Me.Width /MyForm.Width ' Hoeveel verandering ? ScaleFactorY = Me.Height /MyForm.Height Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me MyForm.Height = de huidige omvang MyForm.Width = Me.Width End Sub < br Me.Height ' Remember > Private Sub Command1_Click ( ) Dim ScaleFactorX Zoals Single , ScaleFactorY Zoals Single DesignX = Xpixels designy = Ypixels RePosForm = True DoResize = False ' Stel het scherm waardeert Xtwips = Screen.TwipsPerPixelX Ytwips = Ypixels Screen.TwipsPerPixelY = Screen.Height /Ytwips ' Y Pixel resolutie Xpixels = screen.width /Xtwips ' X pixel resolutie ' schaleringsfactoren Bepaal ScaleFactorX = ( Xpixels /DesignX ) ScaleFactorY = ( Ypixels /designy ) Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me Label1.Caption = " Huidige resolutie is " & Str $ ( Xpixels ) + _ < br > " door " + Str $ ( Ypixels ) MyForm.Height = Me.Height ' Onthoud de huidige omvang MyForm.Width = Me.Width end Sub 4 Voeg alle controles die u wilt testen aan de vorm . U kunt etiketten , opdrachtknoppen en illustratiekaders voegen . U moet dit doen om te testen of alle elementen op uw formulier correct hun grootte aanpassen . 5 Ga naar het menu " Project " en selecteer " Module toevoegen .... " Klik op "Add" om de nieuwe module toe te voegen aan uw project 6 Ga naar de nieuwe module en plak de code om de verhoudingen van uw formulier automatisch aan te passen in verband met schermresolutie : . Public Xtwips als Geheel , Ytwips als Geheel Public Xpixels als Geheel , Ypixels als Geheel Type FRMSIZE Hoogte As Long Breedte As Long End Type Public RePosForm zoals Van Boole Public DoResize zoals Van Boole Sub Resize_For_Resolution ( ByVal SFX Zoals Single , _ ByVal SFY Zoals Single , MijnFormulier Zoals Form ) op Twitter Dim I als Geheel Dim SFFont Zoals Single SFFont = ( SFX + SFY ) /2 ' gemiddelde schaal ' grootte van de bedieningselementen voor de nieuwe resolutie On Error Resume Next ' voor woningen alleen-lezen of niet-bestaand Met MijnFormulier I = 0 te tellen. - 1 Als TypeOf . Controls ( I ) Is ComboBox Then ' kan Hoogte niet veranderen . Controls ( I ) . links = . Controls ( I ) . Linker * SFX . Controls ( I ) . Top = . Controls ( I ) . Top * SFY . Controls ( I ) . Width = . Controls ( I ) . Breedte * SFX Else . Controls ( I ) . Verplaatsen . Controls ( I ) . Linker * SFX _ . Controls , ( I ) . Top * SFY _ . Controls , ( I ) . breedte * SFX _ . Controls , ( I ) . Hoogte * SFY End Als ' resize en voordat u de FontSize . Controls ( I ) . FontSize = . Controls ( I ) . FontSize * SFFont Volgende ik Als RePosForm ' Nu omvang dan het formulier . verplaatsen . links * SFX , . Top * SFY , . breedte * SFX , . Hoogte * SFY End Als End Met End Sub 7 Test uw nieuwe vorm door het uitvoeren van het onder verschillende schermresoluties . Het dient te nemen van hetzelfde bureaublad gebied en haar positie te handhaven .
|