COMO LIMPAR UM CONTROLE ESPECIFICADO.

PROGRAMADORVB6 14/09/2011 13:33:27
#384239
Olá Pessoal.
Estou com o problema em expecificar uma limpeza de conteúdos para um só controle em um form.
Já consegui fazer com que ele limpe todos os campos para todos os controles que estiverem definidos dentro do form, mas não consigo designar uma limpeza para um controle individual ou seja ; embora existam vários controles dentro de uma janela, a função só irá limpar aquele que eu designar.
Fiz assim a rotina para que me possam ajudar.

Na Classe
 Public Class Procedimentos
Public Enum Limpa_Controle
Todos = 0
TextBox = 1
ComboBox = 2
MaskedTextBox = 3
DateTimePicker = 4
RadioButton = 5
CheckBox = 6
End Enum
Public Property Limpeza As Limpa_Controle

Public Sub LimpaCampos(ByVal c As Control, ByRef Limpeza As Limpa_Controle)
[ô] Percorre a coleção de controles de c.

If Limpeza = Limpa_Controle.Todos Then
For Each ctr As Control In c.Controls
[ô] Verifica se o controle tem controles filhos;
[ô] se tiver, percorre a coleção.
If (ctr.Controls.Count > 0) Then
Call LimpaCampos(ctr, Limpa_Controle.Todos)
End If
[ô] Se encontrar um TextBox, limpa.

If (TypeOf ctr Is TextBox) Then
Dim t As TextBox = DirectCast(ctr, TextBox)
t.Text = String.Empty
End If


[ô] Se encontrar um ComboBox, limpa.
If (TypeOf ctr Is ComboBox) Then
Dim t As ComboBox = DirectCast(ctr, ComboBox)
t.Text = String.Empty
End If
If (TypeOf ctr Is MaskedTextBox) Then
Dim t As MaskedTextBox = DirectCast(ctr, MaskedTextBox)
t.Clear()
End If
If (TypeOf ctr Is DateTimePicker) Then
Dim t As DateTimePicker = DirectCast(ctr, DateTimePicker)
t.Value = Today
End If
Next
End If


End Sub


End Class


No Módulo

  Module DefGlobais
Public ObjProcedimentos As New Procedimentos
Public ObjFuncoes As New Funcoes

End Module


No Formulário

Para chamar :


Call ObjProcedimentos.LimpaCampos(Me, Procedimentos.Limpa_Controle.Todos)


Desde já agradeço a vossa atenção.
Atenciosamente.
Programadorvb6
KERPLUNK 14/09/2011 13:44:48
#384240
Public Sub LimpaCampos(ByVal c As Control, ByRef Limpeza As Limpa_Controle, Optional Controle as String = [Ô][Ô])
[ô] Percorre a coleção de controles de c.

If Limpeza = Limpa_Controle.Todos Then
For Each ctr As Control In c.Controls
[ô] Verifica se o controle tem controles filhos;
[ô] se tiver, percorre a coleção.
if Controle <> [Ô][Ô] then
if ctr.Name = Controle then
If (ctr.Controls.Count > 0) Then
Call LimpaCampos(ctr, Limpa_Controle.Todos)
End If
[ô] Se encontrar um TextBox, limpa.

If (TypeOf ctr Is TextBox) Then
Dim t As TextBox = DirectCast(ctr, TextBox)
t.Text = String.Empty
End If



[ô] Se encontrar um ComboBox, limpa.
If (TypeOf ctr Is ComboBox) Then
Dim t As ComboBox = DirectCast(ctr, ComboBox)
t.Text = String.Empty
End If
If (TypeOf ctr Is MaskedTextBox) Then
Dim t As MaskedTextBox = DirectCast(ctr, MaskedTextBox)
t.Clear()
End If
If (TypeOf ctr Is DateTimePicker) Then
Dim t As DateTimePicker = DirectCast(ctr, DateTimePicker)
t.Value = Today
End If
else
If (ctr.Controls.Count > 0) Then
Call LimpaCampos(ctr, Limpa_Controle.Todos)
End If
[ô] Se encontrar um TextBox, limpa.

If (TypeOf ctr Is TextBox) Then
Dim t As TextBox = DirectCast(ctr, TextBox)
t.Text = String.Empty
End If



[ô] Se encontrar um ComboBox, limpa.
If (TypeOf ctr Is ComboBox) Then
Dim t As ComboBox = DirectCast(ctr, ComboBox)
t.Text = String.Empty
End If
If (TypeOf ctr Is MaskedTextBox) Then
Dim t As MaskedTextBox = DirectCast(ctr, MaskedTextBox)
t.Clear()
End If
If (TypeOf ctr Is DateTimePicker) Then
Dim t As DateTimePicker = DirectCast(ctr, DateTimePicker)
t.Value = Today
End If
end if
end if
Next
End If


End Sub
Tópico encerrado , respostas não são mais permitidas