COMO DIMINUIR ESTE CODIGO

GRIFFON17 16/08/2013 14:07:13
#427638
Duas dúvidas:

1- Como diminuir este código ? (Ele gasta muitas linhas)
  TXTCONTAOBS.Text = [Ô][Ô]
TXTCONTACOD.Text = [Ô][Ô]
TXTCONTATEL1.Text = [Ô][Ô]
TXTCONTATEL2.Text = [Ô][Ô]
TXTCONTATEL3.Text = [Ô][Ô]
TXTCONTATEL4.Text = [Ô][Ô]


2- Diminuir o tamanho do código ajuda a otimizar o programa ?
JABA 16/08/2013 14:25:48
#427639
Você pode usar o seguinte:

1ª Forma

Public Sub LimpaForm(ByVal F As Form)
Dim i As Integer
For i = 1 To F.Controls.Count - 1
If TypeOf F.Controls(i) Is TextBox Then
F.Controls(i).Text = [Ô][Ô]
End If
Next
End Sub


2ª Forma

Public Sub LimpaForm(ByVal F As Form)
Dim Ctl As Integer
For Each Ctl In F.Controls
If TypeOf F.Controls(Ctl) Is TextBox Then
F.Controls(Ctl).Text = [Ô][Ô]
End If
Next
End Sub
GRIFFON17 16/08/2013 14:35:59
#427640
JABA,

Meu código contém outras textbox que eu não quero apagar o texto. O código tem que ser específico para estas 5 textbox (na verdade são 18 textbox )

Já vi em algum lugar um código que juntava todas as textbox em um único grupo e depois atribuía = [Ô][Ô] a todas de uma vez, gastava 3 ou 4 linhas
CASSIOJFF 16/08/2013 15:05:26
#427642
sei la mas se elas tiverem o mesmo tipo de nomenclatura vc pode usar o codigo do JABA e implementar
If TypeOf F.Controls(i) Is TextBox Then
if instr(f.controls(i).name,[Ô]CONTA[Ô])<>0 then
F.Controls(i).Text = [Ô][Ô]
endif
End If

acho isso poderia dar certo, so nao sei se coloquei a sintaxe certa do instr
ADHEL 16/08/2013 15:08:15
#427643
Coloque a propriedades TAG dos textbox que deseja limpar para 1
 Public Sub Limpar(ByVal controlP As Control)
Dim ctl As Control
For Each ctl In controlP.Controls
If TypeOf ctl Is TextBox Then
If CType(ctl, TextBox).Tag = [Ô]1[Ô] Then
DirectCast(ctl, TextBox).Text = String.Empty
End If
ElseIf ctl.Controls.Count > 0 Then
Limpar(ctl)
End If
Next
End Sub

Para chamar é :
Limpar(me)
NILSONTRES 16/08/2013 16:40:42
#427662
Colaca os textbox separadamente dentro de um groupbox, no caso utilize 2 groupbox, 1 para os campos que quer limpar e outro para os que não quer.
depois :

Dim ctl As Control
For Each ctl In controlP.Groupbox.Controls
Mias ou menos isso ai, ou seja referencie o groupbox e seus controls.
GRIFFON17 16/08/2013 16:45:04
#427663
@NILSONTRES

é exatamente isso que estou procurando, vc tem algum exemplo (ou pode criar um no meu código) ?
NILSONTRES 16/08/2013 17:33:02
#427664
Dim MY_CONTROLS As Control
For Each MY_CONTROLS In Me.Suagroupbox.Controls

If TypeOf MY_CONTROLS Is TextBox Then
MY_CONTROLS.Text = [Ô][Ô]
End If
Next
Faça seu login para responder