Ho un'app Winforms contenente un RichTextBox.Winforms RichTextBox: come posso determinare quante righe di testo sono visibili?
Come determinare quante righe di testo sono visualizzate, attualmente visibili?
Motivo: voglio scorrere il punto di inserimento al centro del RichTextBox. Posso usare RichTextBox.ScrollToCaret(), ma questo pone il punto di inserimento nella parte superiore del RichTextBox. Immagino, se so quante righe sono visualizzate, potrei spostare il cursore "indietro" di n/2 linee, quindi chiamare ScrollToCaret(), quindi ripristinare la posizione originale del cursore.
EDIT:
ho trovato EM_GETLINECOUNT, che ho pensato è stata la risposta, ad eccezione del dottore dice: Il messaggio EM_GETLINECOUNT recupera il numero totale di righe di testo, non solo il numero di linee che sono attualmente visibili .
Tantalizingly, c'è anche EM_GETFIRSTVISIBLELINE, che ottiene la prima linea visibile, ma non ho trovato un GETLASTVISIBLELINE. ??
correlati:
How can I scroll the caret to the middle of the RichTextBox?
Appena interessato - cosa hai intenzione di fare con queste informazioni? Ti rendi conto che questo potrebbe essere variabile, perché puoi avere caratteri diversi e riempire tutto il testo. –
È iniziato a creare una RTB personalizzata che visualizza i numeri di riga: http://stackoverflow.com/questions/2567263/how-to-show-number-of-a-line-in-a-richtextbox-c/2668264#2668264 – Cheeso