none
Quantidade de linhas em um RichTextBox RRS feed

  • Pergunta

  • Galera, seguinte, preciso limitar a quantidade de linhas digitadas em um RichTextBox do VB6, existe alguma função ou propriedade que eu possa utilizar pra fazer isso, ou terei que fazer na mão mesmo!!!

    Já delimitei a quantidade de caracteres, porém, não me ajudou o bastante, pois nem sempre o usuário utiliza a quantidade máxima de caracteres, mas ultrapassa a de linhas devido a utilização do ENTER.

    Aceito sugestões, artigos e até mesmo códigos prontos.

    Desde já agradeço a ajuda.

    segunda-feira, 13 de dezembro de 2010 14:40

Respostas

  • Leandro,

    Você pode escrever uma função para contar a quantidade de linhas do RichTextBox e depois no evento KeyDown dele você verifica se está passando do número de linhas que você quer... Caso positivo, você seta o e.Handled = True...

    Private Function ContaLinhas(s As String) As Long
    	Dim counter As Long = 1
    	Dim start As Integer = 0
    	While (InlineAssignHelper(start, s.IndexOf(ControlChars.Lf, start))) <> -1
    		counter = counter + 1
    		start = start + 1
    	End While
    	Return counter
    End Function
    
    

    Depois no KeyDown:

    If (ContaLinhas(richTextBox1.Text) > 2) Then
     e.Handled = True
    End If
    

    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    segunda-feira, 20 de dezembro de 2010 17:22
    Moderador

Todas as Respostas

  • Galera, seguinte, preciso limitar a quantidade de linhas digitadas em um RichTextBox do VB6, existe alguma função ou propriedade que eu possa utilizar pra fazer isso, ou terei que fazer na mão mesmo!!!

    Já delimitei a quantidade de caracteres, porém, não me ajudou o bastante, pois nem sempre o usuário utiliza a quantidade máxima de caracteres, mas ultrapassa a de linhas devido a utilização do ENTER.

    Aceito sugestões, artigos e até mesmo códigos prontos.

    Desde já agradeço a ajuda.

    tenta assim: RichTextBox1.MaxLength = 1000
    Just Be Humble Malange!
    segunda-feira, 13 de dezembro de 2010 19:24
    Moderador
  • Malange, a propriedade MaxLength limita a quantidade de caracteres, esta propriedade não me ajuda. O que eu preciso realmente e delimitar a quantidade de linhas a ser digitada, por exemplo, não posso ter mais do que 25 linhas independentemente da quantidade de caracteres.

    Mesmo assim, agradeço a ajuda.

    segunda-feira, 13 de dezembro de 2010 19:36
  • Cara, acho quase inpossivel o que voce esta a pedir. Pode de fazer isto, mais vais ser tu a escrever este codigo.

    A unica solucao e voce criar uma funcao que vai vereficar a cada mudanca de linha dentro do RichTextbox e gravar numa variavel. Sempre que houver uma mudanca de linha ele grava e faz incremento +1, quando atingir 25 e diz que atingiu o limite delinha.

    Apartir dai nao deixar escrever nada no RichTextBox.

    Mais voce vai ter de ralar pra fazer isto.

     


    Just Be Humble Malange!
    segunda-feira, 13 de dezembro de 2010 19:52
    Moderador
  •  Nao seria melhor usar um listbox ?  seria muito mais facil determinar essa função.


    terça-feira, 14 de dezembro de 2010 01:54
  • Verifique qual o modo em que você define o path da sua base de dados, pois no erro que você passou tem uma repetição dos diretórios "bin\Debug\bin\Debug".


    Lucas


    Estas a responder a mesma pergunta ou estas a te referir a uma outra?

     


    Just Be Humble Malange!
    terça-feira, 14 de dezembro de 2010 13:12
    Moderador
  • Wellington, se eu não dependesse de trabalhar com formatos RTF eu faria isso.

    terça-feira, 14 de dezembro de 2010 15:15
  • Existe alguma forma de saber qual a linha em que o cursor está posicionado?
    terça-feira, 14 de dezembro de 2010 15:17
  • Leandro,

    Você pode escrever uma função para contar a quantidade de linhas do RichTextBox e depois no evento KeyDown dele você verifica se está passando do número de linhas que você quer... Caso positivo, você seta o e.Handled = True...

    Private Function ContaLinhas(s As String) As Long
    	Dim counter As Long = 1
    	Dim start As Integer = 0
    	While (InlineAssignHelper(start, s.IndexOf(ControlChars.Lf, start))) <> -1
    		counter = counter + 1
    		start = start + 1
    	End While
    	Return counter
    End Function
    
    

    Depois no KeyDown:

    If (ContaLinhas(richTextBox1.Text) > 2) Then
     e.Handled = True
    End If
    

    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    segunda-feira, 20 de dezembro de 2010 17:22
    Moderador