CONTROLAR TAMANHO DO FORM COM TRACKBAR
Olá.
Estou desenvolvendo um programa simples, incluà no form (sem borda) duas TrackBars uma vertical e outra horizontal. Gostaria de saber como que passo a estes dois componentes o Height e Width do form, a medida que eu deslocasse o controle vertical aumentasse o Height e o Horizontal o Width. Eu acho q seria com valores de 0 a 10 nas propriedades minimum e maximum dos controles, depois converteria o tamanho do Form em porcentagem... sei lá. Para que ficasse proporcional. Tem um recurso semelhante no Office 2007 na opção de zoom, q vc arrasta pra aumentar e diminuir...
Se alguém souber, ajuda ae.. =D
Obrigado.
Estou desenvolvendo um programa simples, incluà no form (sem borda) duas TrackBars uma vertical e outra horizontal. Gostaria de saber como que passo a estes dois componentes o Height e Width do form, a medida que eu deslocasse o controle vertical aumentasse o Height e o Horizontal o Width. Eu acho q seria com valores de 0 a 10 nas propriedades minimum e maximum dos controles, depois converteria o tamanho do Form em porcentagem... sei lá. Para que ficasse proporcional. Tem um recurso semelhante no Office 2007 na opção de zoom, q vc arrasta pra aumentar e diminuir...
Se alguém souber, ajuda ae.. =D
Obrigado.
Cara eu fiz uma conta maluca, mas deu certo aqui
eu testei com o meu form que tem Width=722 e Height=632
Primeiro eu declarei no escopo esta variável:
[txt-color=#0000f0]Dim[/txt-color] Altura [txt-color=#0000f0]As Long[/txt-color]
No Load eu defini seu valor
[txt-color=#0000f0]Protected Sub[/txt-color] Page_Load([txt-color=#0000f0]ByVal[/txt-color] sender [txt-color=#0000f0]As Object[/txt-color], [txt-color=#0000f0]ByVal[/txt-color] e [txt-color=#0000f0]As[/txt-color] System.EventArgs) [txt-color=#0000f0]Handles[/txt-color] Me.Load
Altura = [txt-color=#0000f0]Me[/txt-color].Height
[txt-color=#0000f0]End Sub[/txt-color]
Agora eu fiz este código que mexe tanto na largura quanto na altura proporcionalmente:
[txt-color=#0000f0]Private Sub[/txt-color] TrackBar1_Scroll(ByVal sender [txt-color=#0000f0]As[/txt-color] System.Object, [txt-color=#0000f0]ByVal[/txt-color] e [txt-color=#0000f0]As[/txt-color] System.EventArgs) [txt-color=#0000f0]Handles[/txt-color] TrackBar1.Scroll
[txt-color=#0000f0]Me[/txt-color].Width = TrackBar1.Value
[txt-color=#0000f0]Me[/txt-color].Height = (Altura / 720) * TrackBar1.Value
[txt-color=#0000f0]End Sub[/txt-color]
Se lhe servir mude este trecho: [Ô]Altura / 720[Ô] para 800, 600, 650, 500... até que você fique satisfeito com o resultado no seu Form
Espero ter ajudado.
eu testei com o meu form que tem Width=722 e Height=632
Primeiro eu declarei no escopo esta variável:
[txt-color=#0000f0]Dim[/txt-color] Altura [txt-color=#0000f0]As Long[/txt-color]
No Load eu defini seu valor
[txt-color=#0000f0]Protected Sub[/txt-color] Page_Load([txt-color=#0000f0]ByVal[/txt-color] sender [txt-color=#0000f0]As Object[/txt-color], [txt-color=#0000f0]ByVal[/txt-color] e [txt-color=#0000f0]As[/txt-color] System.EventArgs) [txt-color=#0000f0]Handles[/txt-color] Me.Load
Altura = [txt-color=#0000f0]Me[/txt-color].Height
[txt-color=#0000f0]End Sub[/txt-color]
Agora eu fiz este código que mexe tanto na largura quanto na altura proporcionalmente:
[txt-color=#0000f0]Private Sub[/txt-color] TrackBar1_Scroll(ByVal sender [txt-color=#0000f0]As[/txt-color] System.Object, [txt-color=#0000f0]ByVal[/txt-color] e [txt-color=#0000f0]As[/txt-color] System.EventArgs) [txt-color=#0000f0]Handles[/txt-color] TrackBar1.Scroll
[txt-color=#0000f0]Me[/txt-color].Width = TrackBar1.Value
[txt-color=#0000f0]Me[/txt-color].Height = (Altura / 720) * TrackBar1.Value
[txt-color=#0000f0]End Sub[/txt-color]
Se lhe servir mude este trecho: [Ô]Altura / 720[Ô] para 800, 600, 650, 500... até que você fique satisfeito com o resultado no seu Form
Espero ter ajudado.
Obrigado PEGUDO! Com base na sua dica, consegui fazer aqui... acabei descobrindo mais uma coisa importante e gostaria de compartilhar: Sabe quando vc cria um form sem borda (tipo para uma aplicação FullScreen), ele cobre a barra de tarefas certo? Eu precisava de um Form sem borda mas que não cobrisse a Taskbar. Fuçando nas propriedades e métodos dos forms acabei descobrindo uma maneira de fazer o form preencher a tela mas deixar a taskbar visÃvel, para isso basta inserir o seguinte código:
Me.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size
[Ô]Screen.PrimaryScreen.WorkingArea.Size[Ô] Obtém o valor da [Ô]área útil[Ô] do Desktop, então eu passei esse valor para a propriedade Maximum do Form para garantir que ele não fique maior do que a tela. Pensando que essa aplicação possa rodar sem problemas em qualquer resolução de tela.
Voltando a questão do tópico, passei os valores das propriedades Maximum e Minimum para o Trackbar:
[txt-color=#0000f0]Me.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size
trbHoriz.Maximum = Me.MaximumSize.Width
trbHoriz.Minimum = Me.MinimumSize.Width
trbVert.Maximum = Me.MaximumSize.Height
trbVert.Minimum = Me.MinimumSize.Height[/txt-color]
Depois inseri a instrução no evento Scroll do Trackbar:
Private Sub trbHoriz_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbHoriz.Scroll
Me.Width = trbHoriz.Value
End Sub
Private Sub trbVert_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbVert.Scroll
Me.Height = trbVert.Value
End Sub
Por fim, para garantir que o Trackbar se atualize cada vez que eu redimensionar o form:
[txt-color=#0000f0]Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Timer2.Enabled = True
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
trbHoriz.Value = Me.Width
trbVert.Value = Me.Height
Timer2.Enabled = False
End Sub[/txt-color]
Me.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size
[Ô]Screen.PrimaryScreen.WorkingArea.Size[Ô] Obtém o valor da [Ô]área útil[Ô] do Desktop, então eu passei esse valor para a propriedade Maximum do Form para garantir que ele não fique maior do que a tela. Pensando que essa aplicação possa rodar sem problemas em qualquer resolução de tela.
Voltando a questão do tópico, passei os valores das propriedades Maximum e Minimum para o Trackbar:
[txt-color=#0000f0]Me.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size
trbHoriz.Maximum = Me.MaximumSize.Width
trbHoriz.Minimum = Me.MinimumSize.Width
trbVert.Maximum = Me.MaximumSize.Height
trbVert.Minimum = Me.MinimumSize.Height[/txt-color]
Depois inseri a instrução no evento Scroll do Trackbar:
Private Sub trbHoriz_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbHoriz.Scroll
Me.Width = trbHoriz.Value
End Sub
Private Sub trbVert_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbVert.Scroll
Me.Height = trbVert.Value
End Sub
Por fim, para garantir que o Trackbar se atualize cada vez que eu redimensionar o form:
[txt-color=#0000f0]Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Timer2.Enabled = True
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
trbHoriz.Value = Me.Width
trbVert.Value = Me.Height
Timer2.Enabled = False
End Sub[/txt-color]
é isso aÃ.
à s vezes, quando estamos perdidos, basta uma palavra pra que possamos resolver uma questão
Valeu
à s vezes, quando estamos perdidos, basta uma palavra pra que possamos resolver uma questão
Valeu
Tópico encerrado , respostas não são mais permitidas