![[Imagen: loPqxRJ.png]](https://i.imgur.com/loPqxRJ.png)
![[Imagen: xsWarVr.png]](https://i.imgur.com/xsWarVr.png)
' Gambas class file
'Se pretende que todas las cajas de texto contenga la misma cadena que la etiqueta
'Sin importar el número de cajas de texto que se use
Const NUMCAJASDETEXTO As Integer = 3
Const TEXTO As String = "prueba"
Private cajas As New Integer[]
Private etiqueta1 As Label
Private etiqueta2 As Label
Private cajadetexto As TextBox
Public Sub Form_Open()
  With Me
    .Arrangement = Arrange.Vertical
    .Width = 200
    .Spacing = True
    .Margin = True
    .AutoResize = True
  End With
  etiqueta1 = New Label(Me)
  With etiqueta1
    .Font = Font["Arial, 24, Bold"]
    .Alignment = Align.Center
    .Text = TEXTO
    .H = 50
    .W = 150
  End With
  For j As Integer = 0 To NUMCAJASDETEXTO - 1
    cajadetexto = New TextBox(Me) As "Manipula"
    With cajadetexto
      .Font = Font["Arial, 18, Bold"]
      .Alignment = Align.Center
      .H = 50
      .w = 150
      .Tag = j
    End With
  Next
  etiqueta2 = New Label(Me)
  With etiqueta2
    .Font = Font["Arial, 20, Bold"]
    .Alignment = Align.Center
    .Text = ""
    .H = 50
    .W = 150
  End With
End
Public Sub Manipula_Change()
  Dim ocajadetexto As Object
  'Comprueba cada cambio en las cajas de texto
  For Each ocajadetexto In Me.Controls
    If ocajadetexto Is TextBox Then
      If Last.text = etiqueta1.Text Then
        If cajas.Find(Last.tag) = -1 Then cajas.Add(Last.tag)
        If cajas.Count = NUMCAJASDETEXTO Then
          etiqueta2.text = "Son iguales"
        Else
          etiqueta2.Text = ""
        Endif
      Else
        etiqueta2.Text = ""
      Endif
    Endif
  Next
End
Public Sub Manipula_KeyPress()
  'Comprueba si se ha pulsado la tecla de retroceso o borrar
  If Key.code = Key.Backspace Or Key.Code = Key.Delete Then
    'Si el tag de la caja de texto donde se escribe se encuentra en cajas
    If cajas.Find(Last.tag) <> -1 Then
      'Elimina el tag de cajas
      cajas.Remove(cajas.Find(Last.tag))
      'Limpia el contenido de la etiqueta2
      etiqueta2.Text = ""
    Endif
  Endif
End
		
	(25-01-2023, 02:09)Shordi escribió: No entiendo el propósito de tanto tejemaneje con el .tag de los textboxes ¿Por qué no preguntar por el .text y ya está?


Const NUMCAJASDETEXTO As Integer = 3
Const TEXTO As String = "prueba"
Private etiqueta1 As Label
Private etiqueta2 As Label
Private cajadetexto As TextBox
Public Sub Form_Open()
  With Me
    .Arrangement = Arrange.Vertical
    .Width = 200
    .Spacing = True
    .Margin = True
    .AutoResize = True
  End With
  etiqueta1 = New Label(Me)
  With etiqueta1
    .Font = Font["Arial, 24, Bold"]
    .Alignment = Align.Center
    .Text = TEXTO
    .H = 50
    .W = 150
  End With
  For j As Integer = 0 To NUMCAJASDETEXTO - 1
    cajadetexto = New TextBox(Me) As "Manipula"
    With cajadetexto
      .Font = Font["Arial, 18, Bold"]
      .Alignment = Align.Center
      .H = 50
      .w = 150
      .Tag = j
    End With
  Next
  etiqueta2 = New Label(Me)
  With etiqueta2
    .Font = Font["Arial, 20, Bold"]
    .Alignment = Align.Center
    .Text = ""
    .H = 50
    .W = 150
  End With
End
Public Sub Manipula_Change()
  Dim ocajadetexto As Object
  Dim cuenta As Integer
  For Each ocajadetexto In Me.Controls
    If ocajadetexto Is TextBox Then
      If ocajadetexto.text = etiqueta1.Text Then cuenta += 1
    Endif
  Next
  If cuenta = NUMCAJASDETEXTO Then
    etiqueta2.Text = "Son iguales"
  Else
    etiqueta2.Text = ""
  Endif
  cuenta = 0
End
		
	 For Each ocajadetexto In Me.Controls
    If ocajadetexto Is TextBox Then
      If ocajadetexto.text = etiqueta1.Text Then cuenta += 1
    Endif
  Next(25-01-2023, 23:12)Shordi escribió: Eso se parece mucho más a lo que yo había pensado. Es el eterno principio de KISS.