Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/09/2011, 22:54
JonathanB
Usuario no validado
 
Fecha de Ingreso: junio-2010
Ubicación: Guatemala
Mensajes: 196
Antigüedad: 14 años, 4 meses
Puntos: 25
Respuesta: Añadir funcionalidad a todos los textBox de un programa

Saludos, estoy algo oxidado en VB6 pero puedes utilizar algo como esto (aún le falta que lo pulas)

Partimos de un proyecto Nuevo

Crea una nueva clase llamada clsAdvancedTextBox y añade el siguiente código:
Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Public WithEvents txtBox As TextBox
  4.  
  5. Private Sub Class_Terminate()
  6.     Set txtBox = Nothing
  7. End Sub
  8.  
  9. Private Sub txtBox_GotFocus()
  10.     txtBox.BackColor = vbRed
  11. End Sub
  12.  
  13. Private Sub txtBox_LostFocus()
  14.     txtBox.BackColor = vbWindowBackground
  15. End Sub

Añade otra clase llamada clsAdvancedTextBoxCollection y añade el siguiente código:
Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private c As Collection
  4.  
  5. Public Sub AddTextBox(ByRef frmValue As Form)
  6.     Dim txtBox As clsAdvancedTextBox
  7.     Dim xControl As Control
  8.    
  9.     For Each xControl In frmValue.Controls
  10.         If TypeOf xControl Is TextBox Then
  11.             Set txtBox = New clsAdvancedTextBox
  12.             Set txtBox.txtBox = xControl
  13.             c.Add txtBox, xControl.Name
  14.         End If
  15.     Next
  16. End Sub
  17.  
  18. Private Sub Class_Initialize()
  19.     Set c = New Collection
  20. End Sub
  21.  
  22. Private Sub Class_Terminate()
  23.     Set c = Nothing
  24. End Sub

Teniendo ya las clases, procedemos a agregar varios textbox al formulario, luego añade el siguiente código al Form1
Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Dim clsTextBoxCollection As clsAdvancedTextBoxCollection
  4.  
  5. Private Sub Form_Load()
  6.     Set clsTextBoxCollection  = New clsAdvancedTextBoxCollection
  7.     clsTextBoxCollection.AddTextBox Form1
  8. End Sub
  9.  
  10. Private Sub Form_Unload(Cancel As Integer)
  11.     Set clsTextBoxCollection  = Nothing
  12. End Sub

Cuando ejecutes el programa, te podrás dar cuenta que al recibir el foco en alguno de los textbox, su color de fondo será de color rojo :).

Espero que te haya sido de utilidad, y como te mencione a la clase le hace falta mas trabajo, simplemente tiene lo necesario para funcionar.


Última edición por JonathanB; 13/09/2011 a las 23:04