. Visual Basic NET eller VB.NET , er en computer programmeringssprog gennemføres på NET Framework . . Du kan bruge VB.NET at skabe komplekse former. Men, en form skabt til standard VGA-opløsning (640 x 480) tager kun en del af skærmen i en højere opløsning . Selv om dette er normalt , kan du ønsker formularen skal have en størrelse og position proportional med den resolution . Disse formularer kaldes opløsning -uafhængig rammer og er relativt nemt at oprette. Ting du skal
Visual Basic, enhver version
Vis Flere Instruktioner
1
Højreklik et vilkårligt sted på skrivebordet og vælg "Egenskaber ". Gå til "Indstillinger " fanen og ændre skærmopløsningen til " 800 x 600 ". Du skal bruge denne lille beslutning til at skabe opløsningen -uafhængig ramme.
2
Open Visual Studio og starte et nyt projekt. Den " Form1 " formular oprettes automatisk
3
Gå til formularens modul og indsæt koden til at gøre formularen opløsning -uafhængig : .
Option Explicit
Dim minform Som FRMSIZE
Dim DesignX As Integer
Dim designy As Integer
Private Sub Form_Load ()
Dim ScaleFactorX Som Single, ScaleFactorY som single ' Skaleringsfaktorer
' størrelse Form i pixels, design opløsning
DesignX = 800
designy = 600
RePosForm = True ' Flag for positionering Form
DoResize = False 'Flag for Resize begivenhed
' Opsæt skærmen værdier
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY Salg
Ypixels = Screen.Height /Ytwips ' Y pixel opløsning
Xpixels = Screen.Width /Xtwips ' X Pixel opløsning
' Bestem skaleringsfaktorer
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /designy )
ScaleMode = 1 ' twips
' Exit Sub ' uncomment at se, hvordan Form1 ser uden resizing < br >
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " Current opløsning er " & Str $ ( Xpixels ) + _
"med" + Str $ ( Ypixels ) < br >
MyForm.Height = Me.Height "Husk den aktuelle størrelse
MyForm.Width = Me.Width
End Sub
Private Sub Form_Resize () < br >
Dim ScaleFactorX Som Single, ScaleFactorY Som Single
p Hvis ikke DoResize Then ' For at undgå uendelig løkke
DoResize = Sand
Exit Sub
< p > End If
RePosForm = False
ScaleFactorX = Me.Width /MyForm.Width 'Hvor meget forandring ?
ScaleFactorY = Me.Height /MyForm.Height
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
MyForm.Height = Me.Height "Husk den aktuelle størrelse
MyForm.Width = Me.Width
End Sub < br >
Private Sub Command1_Click ()
Dim ScaleFactorX Som Single, ScaleFactorY Som Single
DesignX = Xpixels
designy = Ypixels
RePosForm = Sand
DoResize = False
' Opsæt skærmen værdier
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips ' Y pixel opløsning
Xpixels = Screen.Width /Xtwips ' X Pixel opløsning
' Bestem skaleringsfaktorer
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /designy )
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " Current opløsning er " & Str $ ( Xpixels ) + _ < br >
"med" + Str $ ( Ypixels )
MyForm.Height = Me.Height "Husk den aktuelle størrelse
MyForm.Width = Me.Width
End Sub
4
Tilføj alle de funktioner, du ønsker at teste for at formularen. Du kan tilføje etiketter, kommandoknapper og billedbøger bokse. Du skal gøre dette for at teste , om alle elementer på formularen justere deres størrelse korrekt .
5
Gå til "Projekt "-menuen og vælge "Tilføj Module ...." Klik på " Add " for at tilføje det nye modul til dit projekt
6
Gå til det nye modul og indsætte koden til automatisk at justere proportionerne på din formular i forhold til skærmopløsning : .
< p > Offentlige Xtwips As Integer , Ytwips As Integer
Offentlige Xpixels As Integer , Ypixels As Integer
Type FRMSIZE
Højde As Long
Bredde As Long
End Type
Public RePosForm Som Boolean
Public DoResize Som Boolean
Sub Resize_For_Resolution ( ByVal SFX Som Single, _
ByVal SFY Som Single, minform Som formular)
Dim I As Integer
Dim SFFont Som Single
SFFont = ( SFX + SFY ) /2 ' gennemsnitlig skala
< p > ' Størrelse kontrollerne til den nye resolution
ved fejl Resume Next' for read-only eller ikke-eksisterende ejendomme
minform
i = 0 til at tælle. - 1
Hvis typeof . Controls (I) Er ComboBox Then ' kan ikke ændre højde
. Controls (I). Venstre = . Controls ( I). Venstre * SFX
. Controls (I). Top = . Controls (I). Top * SFY
. Controls ( I). Bredde = . Controls ( I). bredde * SFX
Else
. Controls (I). Flyt. Controls (I). Venstre * SFX , _
. Controls (I). top * SFY , _
. Controls (I). Bredde * SFX , _
. Controls (I). Højde * SFY
End If
' Resize og flytte , før du ændrer FontSize
. Controls (I). fontsize = . Controls (I). fontSize * SFFont
Næste jeg
p Hvis RePosForm Så
"Nu størrelse formular
. Flyt . Venstre * SFX . Top * SFY . bredde * SFX . Højde * SFY
End If
End With
End Sub
7
Test din nye form ved at køre det under forskellige skærmopløsninger . Det bør tage op på samme desktop -området og fastholde sin position .