none
¿Cómo contar la cantidad de líneas en un RichTextBox? RRS feed

  • Pregunta

  • Tengo un richtextbox y un statusstrip con un label que debe contener el número de la cantidad de líneas que tiene el richtextbox. Lo unico que se me ocurrió hasta el momento es utilizar la funciona Find del Richtextbox y buscar los saltos de linea como vbcrlf en el evento textchanged del richtextbox, pero de esta forma siempre buscaría desde el principio y encontraría siempre el mismo salto de linea y por lo tanto el label quedaría en 1 etenamente.

    El otro problema es que necesito contar también las lineas que agrega el richtextbox cuando el texto es muy largo (lo tengo configurado así) y tengo entendido que el vbcrlf no busca esos saltos sino los que se ingresan manualmente.. no se si me explico bien..

    Espero que me puedan ayudar y gracias de antemano.
    miércoles, 30 de diciembre de 2009 21:14

Todas las respuestas

  • Hola,

    en este hilo he encontrado la forma para mostrar la cantidad de líneas visibles de un richTextBox.

    int topIndex = richTextBox1.GetCharIndexFromPosition(new Point(1, 1));
    int bottomIndex  = richTextBox1.GetCharIndexFromPosition(new Point(1, richTextBox1.Height - 1));
    int topLine = richTextBox1.GetLineFromCharIndex(topIndex);
    int bottomLine = richTextBox1.GetLineFromCharIndex(bottomIndex);
    int numLinesDisplayed = bottomLine - topLine;

    En la última variable tienes el valor de las lineas que se muestran en pantalla. Faltaría calcular las que no se ven...

    Voy a realizar un par de pruebas para ver si puedo conseguirlo.

    Un saludo.

    jueves, 31 de diciembre de 2009 8:46
  • Hola no te valdria con esto: http://msdn.microsoft.com/es-es/library/system.windows.forms.textboxbase.lines(VS.80).aspx?
    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    martes, 5 de enero de 2010 22:05
    Moderador
  • Hola,

    esta propiedad no devuelve el número de líneas visuales que se muestran en el control, sólo las que tienen un salto de línea manual. 

    Un saludo.
    miércoles, 6 de enero de 2010 10:25