AO TABULAR, DEIXAR TEXTBOX SELECIONADA...

XYKOVIEIRA 31/07/2009 13:18:44
#318455
Galera,
Tenho um project que percorre diversas textbox num form, seja para inserir novos dados, como para alterar dados existentes.A cada evento [ô]GotFocus[ô] de cada textbox, coloco a instrução [ô]SendKeys [Ô]{home}+{end}[ô], para facilitar a edição do que está registrado. Assim, o usuário pode digitar em cima do dado registrado, para substituir valores, por exemplo, sem ter de apagá-los antes.
Contudo, são diversas textbox no form.
Existe alguma rotina genérica que faça com que todas as textbox sejam selecionadas, após tabular por elas, como, por ex., a rotina que desabilita as textbox abaixo? Aí, é só por a rotina numa função e em cada evento [ô]GotFocus[ô] chamar a função...

<Função Seleciona>
Dim F
For F = 0 to Me.Count -1
If TypeOf Me.Controls(F) is TextBox then
Me.Controls(F).Enabled = False
End If
Next F

GotFocus da TextBox: Call Seleciona





MARCELO.TREZE 31/07/2009 13:35:05
#318457
Resposta escolhida
seria isso

Function Seleciona()
Dim txtName As String
Dim txt As TextBox
Dim ctl As Control
If TypeOf Me.ActiveControl Is TextBox Then txtName = Me.ActiveControl.Name

For Each ctl In Me
If txtName = ctl.Name Then
SendKeys [Ô]{home}+{end}[Ô]
End If
Next
End Function


Private Sub Text1_GotFocus()
Seleciona
End Sub

RICATOM 31/07/2009 13:56:46
#318460
Não se entendi direito, mas


Private Sub text1_GotFocus()
On Error Resume Next
Screen.ActiveControl.SelStart = 0: Screen.ActiveControl.SelLength = Len(Screen.ActiveControl.Text)
End Sub
MARCELO.TREZE 31/07/2009 15:00:14
#318466
Mas a melhor forma mesmo seria

você criar um textbox com a propriedade index=0, copiare este e colar no form

assim você criaria uma array, precisando apenas de um unico código que seria este

Private Sub txtCampo_GotFocus(Index As Integer)
SendKeys [Ô]{home}+{end}[Ô]
End Sub


preste bem atenção não seria necessário um evento para cada text, e sim somente um, que é este ai de cima.

veja um exemplo em anexo

XYKOVIEIRA 31/07/2009 19:34:15
#318499
Valeu galera. Vou testar as dicas no meu project.
[ô]brigadão.
ANDRE.ADMVB 31/07/2009 19:36:55
#318500
Private Sub txtCampo_GotFocus(Index As Integer)
With txtCampo(Index)
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub
Tópico encerrado , respostas não são mais permitidas