我在VB6中有一个应用程序,在该应用程序中,按下add按钮后,字段将添加到UserControl中。

我需要的是用一个UserControl来管理那些ScrollBar,这样用户就可以在不需要放大表单的情况下继续运行了。

目前,这是整个代码:
Dim indice As Integer
Dim indicee As Integer
Private Sub btnAñadir_Click()
indice = indice + 1 'aumentamos el index
indicee = indicee + 0 'lo iniciamos en 0
uc1(indicee).Visible = True
'Label y TextBox de tipo
lblTipo(indicee).Visible = True
cmbAddTipo(indicee).Visible = True
'Label y TextBox de prefijo
lblAddPrefijo(indicee).Visible = True
txtAddPrefijo(indicee).Visible = True
'Label y TextBox de número
lblAddNum(indicee).Visible = True
txtAddNumero(indicee).Visible = True
chkAddPrincipal(indicee).Visible = True
'Label y TextBox de vínculo
lblAddVin(indicee).Visible = True
cmbAddVinculo(indicee).Visible = True
'uc1
Load uc1(indice) ' creamos el control
uc1(indice).Visible = True ' lo hacemos visible
uc1(indice).Top = uc1(indice - 1).Top + uc1(indice - 1).Height + 20
'lblTipo
Load lblTipo(indice)
Set lblTipo(indice).Container = uc1(indice)
lblTipo(indice).Visible = True
lblTipo(indice).Top = lblTipo(indice - 1).Top
'cmbAddTipo
Load cmbAddTipo(indice)
Set cmbAddTipo(indice).Container = uc1(indice)
cmbAddTipo(indice).Visible = True
cmbAddTipo(indice).Top = cmbAddTipo(indice - 1).Top
'lblAddPrefijo
Load lblAddPrefijo(indice)
Set lblAddPrefijo(indice).Container = uc1(indice)
lblAddPrefijo(indice).Visible = True
lblAddPrefijo(indice).Top = lblAddPrefijo(indice - 1).Top
'txtAddPrefijo
Load txtAddPrefijo(indice)
Set txtAddPrefijo(indice).Container = uc1(indice)
txtAddPrefijo(indice).Visible = True
txtAddPrefijo(indice).Top = txtAddPrefijo(indice - 1).Top
'lblAddNum
Load lblAddNum(indice)
Set lblAddNum(indice).Container = uc1(indice)
lblAddNum(indice).Visible = True
lblAddNum(indice).Top = lblAddNum(indice - 1).Top
'txtAddNumero
Load txtAddNumero(indice)
Set txtAddNumero(indice).Container = uc1(indice)
txtAddNumero(indice).Visible = True
txtAddNumero(indice).Top = txtAddNumero(indice - 1).Top
'checkAddPrincipal
Load chkAddPrincipal(indice)
Set chkAddPrincipal(indice).Container = uc1(indice)
chkAddPrincipal(indice).Visible = True
chkAddPrincipal(indice).Top = chkAddPrincipal(indice - 1).Top
'lblAddVin
Load lblAddVin(indice)
Set lblAddVin(indice).Container = uc1(indice)
lblAddVin(indice).Visible = True
lblAddVin(indice).Top = lblAddVin(indice - 1).Top
'cmbAddVinculo
Load cmbAddVinculo(indice)
Set cmbAddVinculo(indice).Container = uc1(indice)
cmbAddVinculo(indice).Visible = True
cmbAddVinculo(indice).Top = cmbAddVinculo(indice - 1).Top
End Sub
Private Sub Form_Load()
'scrollAdd
scrollAdd.Min = 0
scrollAdd.Max = 1000
scrollAdd.SmallChange = Screen.TwipsPerPixelX * 10
scrollAdd.LargeChange = scrollAdd.SmallChange
End Sub
Private Sub scrollAdd_Change()
UserControl1
End Sub
Private Sub scrollAdd_Scroll()
UserControl1
End Sub
Private Sub UserControl1()
Dim c As Control
For Each c In Me.Controls
If c.Container.Name = "uc1" And Not TypeOf c Is scrollAdd Then
c.Down = c.Down - (oldPos - scrollAdd.Value)
End If
Next
oldPos = scrollAdd.Value
End Sub在使用add按钮添加了几个字段之后,如何使用ScrollBar下载表单呢?当我按下ScrollBar I get the message: Sub or Function is not defined vb6时,这个错误是对的:Private Sub UserControl1()
发布于 2019-12-16 10:35:09
Private Sub Command1_Click()
Load txtCode(txtCode.UBound + 1)
txtCode(txtCode.UBound).Top = txtCode(txtCode.UBound - 1).Top +
txtCode(txtCode.UBound - 1).Height
txtCode(txtCode.UBound).Text = txtCode.UBound
txtCode(txtCode.UBound).Visible = True
Picture2.Height = (txtCode(txtCode.UBound).Top +
txtCode(txtCode.UBound).Height) + 150
End Sub
Private Sub Form_Load()
Picture2.Top = Picture1.Top
Picture2.Left = Picture1.Left
Picture2.Height = Picture1.Height
Picture2.Width = Picture2.Width
End Sub
Private Sub Picture2_Resize()
If Picture2.Height > Picture1.Height Then
If Not HScroll1.Visible Then
HScroll1.Visible = True
VScroll1.Visible = True
End If
VScroll1.Max = (Picture2.Height - Picture1.Height) /
txtCode(txtCode.UBound).Height
VScroll1.Min = 0
VScroll1.Value = 0
Else
If HScroll1.Visible Then
HScroll1.Visible = False
VScroll1.Visible = False
End If
End If
End Sub
Private Sub VScroll1_Change()
Picture2.Top = -(VScroll1.Value * txtCode(txtCode.UBound).Height)
End Sub请参阅以下链接中的更多内容:
[ http://www.esjay.org/2019/12/13/scrollbar-using-vb6/ ]
https://stackoverflow.com/questions/59268150
复制相似问题