Visual Basic em Português

Página pessoal de Jorge Paulino sobre o Visual Basic (VB.NET, ASP.NET, VB6, VBA) e algumas noticias de tecnologia

Access: Limitar o número de linhas numa TextBox

Por vezes existe a necessidade de personalizar o comportamente e/ou funcionalidade de determinados controlos por as mais diversas razões. Estas alterações estão muitas vezes já contempladas nas propriedades do próprio objecto e o utilizador apenas necessita de a alterar.

Mas algumas vezes essas funcionalidades não existem e existe a necessidade de utilizado o código, através do VBA, para o fazer.

Neste exemplo vamos limitar o número de linhas numa TextBox ou caixa de texto. Esta limitação pode apenas ser controlada pelo número de vezes que o utilizador carrega na tecla ENTER criando uma nova linha.

Assim é necessário seleccionar a TextBox e nas suas propriedades definir Enter Key Behavior como New Line in Field. Desta forma estamos a definir que sempre que o utilizador carrega na tecla ENTER é criada uma nova linha.

Depois, no evento On Key Press seleccionamos o editor de código. É utilizado o evento KeyPress e não o KeyDown ou KeyUp porque este é o único que permite cancelar a tecla que foi carregada, ou seja, permite ignorar o commando dado pelo utilizado.

No editor de código é necessário apenas inserir o seguinte código no procedimento:

' Procedimento que é executado quando é pressionada qualquer tecla quando a TextBox tem a selecção ou focus
Private Sub Text0_KeyPress(KeyAscii As Integer)

' Verifica se a tecla carregada foi a ENTER
If KeyAscii = vbKeyReturn Then

    ' Cria um array de tipo string
    Dim totalLines() As String

    ' Coloca no array criado a lista de linhas existentes na TextBox
    totalLines = Split(Text0.Text, vbCrLf)

    ' Caso o total de linhas no array seja superior a 2
    '  (uma vez que o array inicia em 0)
    If UBound(totalLines) > 2 Then

        ' Ignora o comando dado pelo utilizado
        KeyAscii = 0

    End If

End If

End Sub



PS: Como sempre, qualquer dúvida, comentário ou correcção ao artigo é sempre bem vinda!

3 comentários:

Beto disse...

Po, gostei muito do que vc publicou a respeito da limitação do número de linhas de um textbox e, por isso, gosria de saber se vc poderia me ajudar pois num programa que estou fazendo vou precisar saber a quantidade de linhas de um textbox (escrito por um usuário) e apartir dessa quantidade poder "quebrar" essas linhas, de forma que eu possa coletar as informações desse textbox linha por linha, entendeu?
Po, se vc puder me ajudar agradeço muito..
meu e-mail é:
beto.nascimento@yahoo.com.br
Desde já agradeço.

Unknown disse...

Meu vba é de 2007 e esse código não funciona :( Você saberia me informar as modificações que devem ser feitas?
Obrigada!

Jorge Paulino disse...

Mas em Access?

Mensagens Recentes



Microsoft Office Especialist

Membro da Comunidade
Experts-Exchange


Administ. da Comunidade
Portugal-a-Programar



Twitter

Artigos no CodeProject

Artigos no CodeProject

Subscrever Novidades

Endereço de Email:

Delivered by FeedBurner

Seguidores

Histórico