. Visual Basic NET , ou VB.NET , é uma linguagem de programação de computador implementado no Framework. . Você pode usar VB.NET para criar formas complexas . No entanto , um formulário criado para a resolução padrão VGA ( 640 x 480) leva apenas uma parte da tela em uma resolução maior . Embora isso é normal , você pode querer a forma de ter um tamanho e posição proporcional com a resolução. Estas formas são chamadas de quadros independentes de resolução e são relativamente fáceis de criar. Coisas que você precisa
Visual Basic, qualquer versão
Show Mais instruções
1
Botão direito do mouse em qualquer lugar na área de trabalho e selecione " Propriedades". Vá a guia "Configurações " e mude a resolução da tela para " 800 x 600 ". Você usará esta pequena resolução para criar o quadro independente de resolução.
2
Abra o Visual Studio e iniciar um novo projeto . O formulário " Form1 " é criado automaticamente
3
Vá para o módulo do formulário e cole o código para tornar o formulário independente da resolução : .
Option Explicit
Dim MyForm Como FRMSIZE
Dim DesignX As Integer Dim
designy As Integer
Private Sub Form_Load () Dim
ScaleFactorX As Single , ScaleFactorY como único " fatores de escala
' Tamanho do formulário em Pixels com uma resolução de projeto
DesignX = 800
designy = 600
RePosForm = True Flag ' para Formulário de posicionamento
DoResize = False ' Flag para Resize Evento
' Definir os valores de tela
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips 'Y Pixel resolução
Xpixels = Screen.Width /Xtwips ' X Pixel resolução
' Determinar fatores de escala
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /designy )
ModoDaEscala = 1 ' twips
' Exit Sub ' descomentar para ver como Form1 parece sem redimensionar
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " resolução atual é" & Str $ ( Xpixels ) + _
" por" + Str $ ( Ypixels )
MyForm.Height = Me.Height ' Lembre-se o tamanho atual
MyForm.Width = Me.Width
End Sub Private Sub
Form_Resize ()
Dim ScaleFactorX As Single , ScaleFactorY As Single
If Not DoResize Then ' Para evitar loop infinito
DoResize = True
Exit Sub
End If
RePosForm = False
ScaleFactorX = Me.Width /MyForm.Width ' Quanta mudança ?
ScaleFactorY = Me.Height /MyForm.Height
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
MyForm.Height = Me.Height ' Lembre-se o tamanho atual
MyForm.Width = Me.Width
End Sub < br >
Private Sub Command1_Click () Dim
ScaleFactorX As Single , ScaleFactorY As Single
DesignX = Xpixels
designy = Ypixels
RePosForm = True
DoResize = False
'Definir os valores de tela
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips 'Y Pixel resolução
Xpixels = Screen.Width /Xtwips ' X Pixel resolução
' Determinar fatores de escala
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /designy )
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " resolução atual é" & Str $ ( Xpixels ) + _ < br >
" por" + Str $ ( Ypixels )
MyForm.Height = Me.Height ' Lembre-se o tamanho atual
MyForm.Width = Me.Width
End Sub
4
Adicione todos os controles que você deseja testar o formulário. Você pode adicionar etiquetas , botões de comando e caixas de imagem . Você deve fazer isso para testar se todos os elementos na sua forma ajustar seu tamanho corretamente.
5
Vá para o menu " Project" e selecione "Add Module .... " Clique em "Adicionar " para adicionar o novo módulo ao seu projeto
6
Vá para o novo módulo e cole o código para ajustar automaticamente as proporções de seu formulário em relação a resolução da tela : .
Xtwips público como Integer, Ytwips As Integer
Xpixels Públicas As Integer , Ypixels As Integer
Tipo FRMSIZE
Altura As Long
largura As Long
Tipo End
RePosForm Pública As Boolean
Pública DoResize As Boolean
Sub Resize_For_Resolution (ByVal SFX As Single , _ ByVal
SFY As Single , MyForm As Form )
Dim I As Integer Dim
SFFont As Single
SFFont = (SFX + SFY ) /2 "escala média
' Tamanho os controles para a nova resolução
On Error Resume Next "para somente leitura ou inexistentes propriedades
Com MyForm
Para I = 0 para contar. - 1
Se TypeOf . Controls (I) é ComboBox Then ' não pode mudar Altura
. Controls (I) . esquerda = . Controls (I) . Esquerda * SFX
. Controls (I) . superior = . Controls (I) . Top * SFY
. Controls (I) . Largura = . Controls (I) . Largura * SFX
Else
. Controls (I). Mova . Controls (I) . Esquerda * SFX , _
. Controls (I). Top * SFY , _
. Controls (I) . Largura * SFX , _
. Controls (I) . Altura * SFY
End If
' Redimensionar e reposicionar antes de alterar a TamanhoDoTipoDeLetra
. Controles (I). TamanhoDoTipoDeLetra = . Controls (I) . TamanhoDoTipoDeLetra * SFFont
seguida eu
Se RePosForm Então
'Agora dimensionar o formulário
. Move. Esquerda * SFX , . Top * SFY , . Largura * SFX , . Altura * SFY
End If End With
Sub End
7
Teste a sua nova forma de executá-lo em diferentes resoluções de tela. Deve levar -se a mesma área de trabalho e manter a sua posição.