. Visual Basic NET eller VB.NET , är en dator programmeringsspråk implementeras på NET Framework . . Du kan använda VB.NET för att skapa komplexa former . Men , ett formulär skapas för standard VGA-upplösning ( 640 x 480 ) tar bara en del av skärmen med en högre upplösning . Även om detta är normalt , kanske du vill att formuläret ska ha en storlek och position proportionell med upplösningen . Dessa former kallas upplösningsoberoende ramar och är relativt lätt att skapa . Saker du behöver Review, Visual Basic , någon version
Visa fler instruktioner
1
Högerklicka någonstans på skrivbordet och välj "Egenskaper . " Gå till "Inställningar" -fliken och ändra skärmupplösningen till " 800 x 600 . " Du kommer att använda denna lilla resolution för att skapa oberoende av upplösning ram .
2
Öppna Visual Studio och starta ett nytt projekt . Den " Form1 " formen skapas automatiskt Addera 3
Gå till formulärets modulen och klistra in koden för att göra formuläret oberoende av upplösning : .
Option Explicit
Dim MyForm Som FRMSIZE
Dim DesignX As Integer
Dim designy As Integer
Private Sub Form_Load ( ) katalog
Dim ScaleFactorX As Single , ScaleFactorY som enda " skalningsfaktorer
" Storlek på Form i pixlar vid utformningen upplösning
DesignX = 800
designy = 600
RePosForm = Sant ' Flagga för positionering Form
DoResize = False ' Flagga för resize-händelse
' Konfigurera skärmen värderar
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips ' Y pixlar
Xpixels = Screen.Width /Xtwips "X Pixel resolution
" Bestäm skalningsfaktorer
ScaleFactorX = ( Xpixels /DesignX ) katalog
ScaleFactorY = ( Ypixels /designy ) katalog
scaleMode = 1 ' twips
" Exit Sub ' avkommenterar att se hur Form1 ser utan storleksändring
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " Aktuell resolutionen " & Str $ ( Xpixels ) + _
" med" + Str $ ( Ypixels )
MyForm.Height = Me.Height ' Minns den nuvarande storleken
MyForm.Width = Me.Width
End Sub
Private Sub Form_Resize ( )
Dim ScaleFactorX As Single , ScaleFactorY As Single
p Om inte DoResize Then ' För att undvika oändlig loop DoResize
= Sant
Exit Sub
End If
RePosForm = False
ScaleFactorX = Me.Width /MyForm.Width " Hur mycket förändring ?
ScaleFactorY = Me.Height /MyForm.Height
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
MyForm.Height = Me.Height ' Minns den nuvarande storleken
MyForm.Width = Me.Width
End Sub
Private Sub Command1_Click ( ) katalog
Dim ScaleFactorX As Single , ScaleFactorY As Single
DesignX = Xpixels
designy = Ypixels
RePosForm = Sant
DoResize = False
'Konfigurera skärmen värderar
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips ' Y pixlar
Xpixels = Screen.Width /Xtwips "X Pixel resolution
" Bestäm skalningsfaktorer
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /designy ) katalog
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " Aktuell resolutionen " & Str $ ( Xpixels ) + _
" med" + Str $ ( Ypixels ) katalog
MyForm.Height = Me.Height ' Minns den nuvarande storleken
MyForm.Width = Me.Width
End Sub
4
Lägg alla de kontroller du vill testa till formuläret . Du kan lägga till etiketter , kommandoknappar och bildblock . Du måste göra detta för att testa om alla element i formuläret justera deras storlek korrekt .
5
Gå till " Project " -menyn och välj " Lägg till modul .... " Klicka på " Add " för att lägga till den nya modulen till ditt projekt
6
Gå till den nya modulen och klistra in koden för att automatiskt justera proportionerna av formuläret i förhållande till skärmupplösning : .
Offentliga Xtwips As Integer , Ytwips As Integer
Public Xpixels As Integer , Ypixels As Integer
Typ FRMSIZE
höjd så länge
Bredd As Long
End Typ
Public RePosForm As Boolean
Public DoResize As Boolean
Sub Resize_For_Resolution ( ByVal SFX As Single , _
ByVal SFY As Single , MyForm Som Form ) katalog
Dim I As Integer
Dim SFFont As Single
SFFont = ( SFX + SFY ) /2 ' genomsnittlig skala
'Storlek kontrollerna för den nya upplösningen
On Error Resume Next ' för skrivskyddade eller obefintliga egenskaper
MyForm
For i = 0 att räkna . - 1
Om typeof . Controls ( I ) Är ComboBox Then ' inte kan ändra
Höjd
. Controls ( I ) . Vänster = . Controls ( I ) . Vänster * SFX
. Kontroller ( I) . Top = . kontroller ( I) . Top * SFY
. Controls ( I). Bredd = . kontroller ( I). Bredd * SFX
Else
. Kontroller ( I) . Flytta. kontroller ( I) . Vänster * SFX , _
. kontroller ( I) . Top * SFY , _
. kontroller ( I) . bredd * SFX , _
. Kontroller ( i ) . Höjd * SFY
End If
" ändra storlek och flytta innan du byter FontSize
. Kontroller ( i ) . fontsize = . Kontroller ( i ) . FontSize * SFFont
Nästa jag
p Om RePosForm Sedan
" nu storlek Form
. flytta . Vänster * SFX , . Top * SFY , . bredd * SFX , . Höjd * SFY
End If
End With
Sub
End
7
Testa din nya form genom att köra den under olika skärmupplösningar . Den bör ta upp samma skrivbord område och behålla sin position .