Tôi có ứng dụng Winforms chứa RichTextBox.RichformBox Winforms: Làm thế nào tôi có thể xác định có bao nhiêu dòng văn bản được hiển thị?
Tôi làm cách nào để xác định số lượng dòng văn bản được hiển thị, hiện hiển thị?
Lý do: Tôi muốn cuộn dấu mũ vào giữa RichTextBox. Tôi có thể sử dụng RichTextBox.ScrollToCaret(), nhưng điều đó đặt dấu mũ ở đầu RichTextBox. Tôi hình, Nếu tôi biết có bao nhiêu dòng được hiển thị, tôi có thể di chuyển dấu "trở lại" n/2 dòng, sau đó gọi ScrollToCaret(), sau đó khôi phục vị trí dấu nháy ban đầu.
EDIT:
tôi thấy EM_GETLINECOUNT, mà tôi nghĩ là câu trả lời, ngoại trừ doc nói: Thông điệp EM_GETLINECOUNT lấy tổng số dòng văn bản, không chỉ số dòng hiện đang hiển thị .
Ngạc nhiên, cũng có EM_GETFIRSTVISIBLELINE, dòng này có dòng hiển thị đầu tiên, nhưng tôi không thể tìm thấy GETLASTVISIBLELINE. ??
liên quan:
How can I scroll the caret to the middle of the RichTextBox?
Chỉ cần quan tâm - bạn sẽ làm gì với thông tin này? Bạn nhận ra rằng điều này có thể thay đổi, bởi vì bạn có thể có phông chữ và đệm khác nhau trong suốt văn bản. –
Nó đã được xây dựng một RTB tùy chỉnh hiển thị số dòng: http://stackoverflow.com/questions/2567263/how-to-show-number-of-a-line-in-a-richtextbox-c/2668264#2668264 – Cheeso