Algum por favor! Consegui fazer funcionar o scroll conforme codigo abaixo.Agora outro problema, quando vou inserindo os textBox com o (Command1) pega a rotina novamente e quando ultrapassa o Height do picturebox(PicInner), vou e uso o VScrollBar(VBar) para posicionar nos ultimos controles criados, so que quando vou inserir novamente os controles eles são criados bem abaixo dos ultimos. A linha que uso para inserir é:
(pos1 = pos1 + 330) que da um espacamento pequeno entre o (Top) dos TextBox. alguém tem uma ideia para solucionar esse problema?
Tenho o exemplo, pra quem mando?
Option Explicit
Public PosicaoScroll
Private m_NumControls As Integer
Dim Referencia As Integer
Dim pos1 'L As Integer
Dim ID As Long
Dim PosLeft, PosTop, L
Dim Box(0 To 1) As Object
Private Sub Command1_Click()
TextX
End Sub
Private Sub Form_Load()
PosicaoScroll = 0
VBar.Min = 0
VBar.SmallChange = 120
VBar.LargeChange = 480
VBar.Value = 0
Referencia = 1
ID = 0
pos1 = Empty
TextX
End Sub
Private Sub TextX()
Dim ctl As TextBox
If Referencia = 1 Then
PosTop = pos1 + 100
End If
PosLeft = 1
L = L + 1
m_NumControls = 1
Set Box(0) = Controls.Add("VB.TextBox", "A" & L + 1, PicInner)
Box(0).Move PosLeft + 398, PosTop, 495, 315
Box(0).Appearance = 0
Box(0).BorderStyle = 1
Box(0).Tag = "a"
Box(0).Visible = True
Set Box(1) = Controls.Add("VB.TextBox", "B" & L + 1, PicInner)
Pergunta
Irenko
Algum por favor! Consegui fazer funcionar o scroll conforme codigo abaixo.Agora outro problema, quando vou inserindo os textBox com o (Command1) pega a rotina novamente e quando ultrapassa o Height do picturebox(PicInner), vou e uso o VScrollBar(VBar) para posicionar nos ultimos controles criados, so que quando vou inserir novamente os controles eles são criados bem abaixo dos ultimos. A linha que uso para inserir é:
(pos1 = pos1 + 330) que da um espacamento pequeno entre o (Top) dos TextBox. alguém tem uma ideia para solucionar esse problema?
Tenho o exemplo, pra quem mando?
Option Explicit
Public PosicaoScroll
Private m_NumControls As Integer
Dim Referencia As Integer
Dim pos1 'L As Integer
Dim ID As Long
Dim PosLeft, PosTop, L
Dim Box(0 To 1) As Object
Private Sub Command1_Click()
TextX
End Sub
Private Sub Form_Load()
PosicaoScroll = 0
VBar.Min = 0
VBar.SmallChange = 120
VBar.LargeChange = 480
VBar.Value = 0
Referencia = 1
ID = 0
pos1 = Empty
TextX
End Sub
Private Sub TextX()
Dim ctl As TextBox
If Referencia = 1 Then
PosTop = pos1 + 100
End If
PosLeft = 1
L = L + 1
m_NumControls = 1
Set Box(0) = Controls.Add("VB.TextBox", "A" & L + 1, PicInner)
Box(0).Move PosLeft + 398, PosTop, 495, 315
Box(0).Appearance = 0
Box(0).BorderStyle = 1
Box(0).Tag = "a"
Box(0).Visible = True
Set Box(1) = Controls.Add("VB.TextBox", "B" & L + 1, PicInner)
Box(1).Move PosLeft + 920, PosTop, 600, 315
Box(1).Appearance = 0
Box(1).BorderStyle = 1
Box(1).Tag = "a"
Box(1).Visible = True
pos1 = pos1 + 330
ID = ID + 1
VBar.Max = pos1
End Sub
Private Sub VBar_Change()
Dim x
Dim pos
pos = VBar.Value - PosicaoScroll
PosicaoScroll = VBar.Value
For Each x In PicInner.Container
If x.Tag = "a" Then
If x.Name <> "PicInner" And x.Name <> "Vbar" Then
x.Top = x.Top - pos
End If
End If
Next x
End Sub
Private Sub VBar_Scroll()
Dim x
Dim pos
pos = VBar.Value - PosicaoScroll
PosicaoScroll = VBar.Value
For Each x In PicInner.Container
If x.Tag = "a" Then
If x.Name <> "PicInner" And x.Name <> "VBar" Then
x.Top = x.Top - pos
End If
End If
Next x
End Sub
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.