FORMATAR TEXTBOX COM INDEX

JORGESALES 27/06/2015 18:55:17
#448235
copiei e colei algumas textbox e escolhi a opção de criar controles Array, o problema
é que não consigo formatar uma única textbox para ficar por exemplo no formato
cpf, tentei o código abaixo mas não deu certo:
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Select Case Text1.item(1)
Case 1
If KeyAscii = 8 Then Exit Sub
If keyacii < Asc([Ô]0[Ô]) Or KeyAscii > Asc([Ô]9[Ô]) Then KeyAscii = 0
Select Case Len(Text1.item(1))
Case 2
Text1.item(1) = Text1.item(1) & [Ô].[Ô]
End Select
End Select
End Sub

JABA 28/06/2015 02:28:20
#448240
Coloque isso no evento LostFocus para o TextBox do CPF:

Format([Ô]seuCPFaqui[Ô], [Ô]00\.000\.000\/0000\-00[Ô])
TUNUSAT 28/06/2015 09:14:59
#448242
Resposta escolhida
JORGESALES,

Tem um outro jeito também (talvez mais prático a longo prazo):

Dentro da aba [Ô]Projects[Ô] / [Ô]Components (Ctrl + T)[Ô]
Procure por:
======================================
Microsoft Masked Edit Control 6.0 (SP3)
C:\WindowszSysWOW64    dc.ocx
======================================

Substitua este componente: [Ô]MaskEdBox[Ô] pelo [Ô]TextBox[Ô].
Configure o componente através da propriedade [Ô]Mask[Ô].

[][ô]s,
Tunusat.
JORGESALES 28/06/2015 11:09:17
#448249
Agradeço a ajuda de todos mas não é esse o meu problema,
estou trabalhando com textbox Array, ou seja todas
tem o mesmo nome o que muda são os indices, exemplo
se eu quiser que uma dessas textbox fique vazias eu não posso
colocar:
Textbox1.Text = [Ô][Ô]
e sim
Textbox1.Item(1).Text = [Ô][Ô]

por isso a dificuldade, no exemplo do
eu teria que especificar qual textbox está perdendo o foco,
quanto ao do
eu não quero usar textbox que não façam parte do indece pois eu tenho
98 textbox e para limpa-las por exemplo eu só faço isso:
For x = 1 to 98
textbox.item(x) = [Ô][Ô]
Next x

Esse é só um exemplo, tem muito mais vantagens em usar controles Array
e estou reduzindo e muito minhas linhas de código


TUNUSAT 28/06/2015 11:48:20
#448254
JORGESALES,

Uma forma de limpar todos os campos [Ô]Textbox[Ô]:

==================================================================
Limpando todos os objetos TextBox do formulário em VB6: Funções Públicas
http://www.jack.eti.br/limpando-todos-os-objetos-textbox-do-formulario-em-vb-funcoes-publicas/
==================================================================
Sub rotLimpar()

For Each controle In Me.Controls
If TypeOf controle Is TextBox Then controle.text = “”
Next

End Sub


[][ô]s,
Tunusat.
JORGESALES 28/06/2015 12:54:23
#448256
Valeu já conhecia esse método mas como disse estou trabalhando com controles Array, a programação fica muito melhor.
JABA 28/06/2015 15:11:09
#448258
JORGESALES, eu não tenho o Vb6 aqui, daí fica impossível testar os códigos que lhe mando. Porém, se você quer trabalhar com indices, tu vai ter que identificar qual é o indice da TextBox que representa o CPF e assim fazer a devida verificação de formatação nele. Uma das formas que você poderia usar para fazer isso, é colocar um valor manualmente no campo Tag do seu TextBox, como por exemplo, Text1.Tag=[Ô]CPF[Ô]. Não se esqueça que isso pode ser feito diretamente no controle através da IDE. Para formatar, você poderia fazer o seguinte:

Public Sub Text1_LostFocus(Index As Integer)
if Text1(Index).Tag = [Ô]CPF[Ô] then
Format(Text1(Index).Text, [Ô]00\.000\.000\/0000\-00[Ô])
end if
End Sub


OBS: De qualquer forma você terá que identificar qual é o campo CPF, seja atribuindo um valor no controle para a sua identificação ou se baseando no Indice que foi gerado pra ele.
Tópico encerrado , respostas não são mais permitidas