Проверка с добавлением / удалением объектов в VB6 - PullRequest
1 голос
/ 09 января 2020

У меня есть запрос, у меня есть этот интерфейс:

enter image description here

ComboBox находятся внутри UserControl, нажимая кнопку Add this UserControl с помощью ComboBox добавляет UserControl / ComboBox в PictureBox:

enter image description here

Я хочу, чтобы, например, когда пользователь выбирал значения двух ComboBox и нажмите кнопку, чтобы добавить эти выбранные значения go в PictureBox (ниже), и значения, выбранные в UserControl, очищаются. Я оставляю изображение того, что я говорю, предположим, что пользователь выбрал значения из комбо:

enter image description here

После того, как вы их выбрали, кнопка «Добавить эти» активируется, они проходят ниже, а те, что выше, очищаются:

enter image description here

Но, если я нажму кнопку удаления, вы должны удалить последний загруженный объект и перейти наверх. Я оставляю описательное изображение, нажимаю кнопку удаления:

enter image description here

Дно исчезает и поднимается:

enter image description here

В настоящее время я использую этот код для добавления:

Option Explicit
Dim indice As Integer

Public Property Let AddType(ByVal Value As String)
   cmbAddExample.Text = Value
End Property

Private Sub btnAñadir_Click()
   indice = indice + 1

   Picture1.Visible = True

   Load uc1(indice)
   Set uc1(indice).Container = Picture1
   uc1(indice).Visible = True
   uc1(indice).Top = IIf(indice = 1, 0, uc1(indice - 1).Top + uc1(indice - 1).Height + 20)

   Load cmbAddExample(indice)
   Set cmbAddExample(indice).Container = uc1(indice)
   cmbAddExample(indice).Visible = True
   cmbAddExample(indice).Top = cmbAddExample(indice - 1).Top
   CargaIDTipoNumero

   uc1(indice).AddType = uc1(0).AddType
   uc1(indice).AddType = ""


   If indice = 3 Then
   Me.btnAñadir.Enabled = False
   End If
End Sub

Итак, кто-нибудь знает, как я могу делать то, что я ищу? Или да, это возможно?

Кнопка удаления:

Private Sub btnQuitar_Click()
   indice = cmbAddExample().Count - 1
   If indice > 0 Then
       Unload cmbAddExample(indice)
       End If
End Sub

1 Ответ

1 голос
/ 09 января 2020

Используя этот ответ в качестве отправной точки, вы можете реализовать эти требования довольно легко. Я скопировал соответствующий код из другого ответа и изменил его:

Private Sub btnAdd_Click()
   index = index + 1

   Load uc1(index)
   Set uc1(index).Container = Picture1
   uc1(index).Visible = True
   uc1(index).Top = IIf(index = 1, 0, uc1(index - 1).Top + uc1(index - 1).Height + 20)

   'copy the information down
   uc1(index).AddType = uc1(0).AddType
   uc1(0).AddType = ""

   Picture1.Visible = True
End Sub

Private Sub btnRemove_Click()
   If index = 0 Then Exit Sub

   'copy the information back up and remove the control
   uc1(0).AddType = uc1(index).AddType
   Unload uc1(index)

   index = index - 1
   If index = 0 Then Picture1.Visible = False
End Sub

Я кодировал только один элемент управления, чтобы проиллюстрировать концепцию. При необходимости вы можете добавить другие элементы управления.

...