Tengo una aplicación de Winforms que contiene un RichTextBox.Winforms RichTextBox: ¿Cómo puedo determinar cuántas líneas de texto son visibles?
¿Cómo puedo determinar cuántas líneas de texto se muestran, actualmente visibles?
Motivo: Quiero desplazar el cursor al medio de RichTextBox. Puedo usar RichTextBox.ScrollToCaret(), pero eso coloca el símbolo de intercalación en la parte superior de RichTextBox. Me imagino, si sé cuántas líneas se muestran, podría mover el cursor "atrás" n/2 líneas, luego llamar a ScrollToCaret(), luego restaurar la posición original del cursor.
EDIT:
encontré EM_GETLINECOUNT, lo cual pensé que era la respuesta, excepto el doctor dice: El mensaje EM_GETLINECOUNT recupera el número total de líneas de texto, no sólo el número de líneas que son actualmente visibles .
Tantalizingly, también hay EM_GETFIRSTVISIBLELINE, que obtiene la primera línea visible, pero no pude encontrar un GETLASTVISIBLELINE. ??
relacionadas:
How can I scroll the caret to the middle of the RichTextBox?
Simplemente interesado: ¿qué vas a hacer con esta información? Te das cuenta de que esto podría ser variable, porque puedes tener diferentes fuentes y relleno en todo el texto. –
Se construyó un RTB personalizado que muestra los números de línea: http://stackoverflow.com/questions/2567263/how-to-show-number-of-a-line-in-a-richtextbox-c/2668264#2668264 – Cheeso