Получение количества отображаемых строк в многострочном текстовом поле в Compact Framework - PullRequest
0 голосов
/ 13 марта 2009

У меня есть многострочное текстовое поле, которое обычно отображает очень длинные строки (например, лицензионные соглашения), и требование к отображению заключается в том, что если пользователь «просматривает» текст через вертикальную полосу прокрутки (не нажимая стрелки или поле прокрутки, но щелкнув над или под полем прокрутки), на последней «странице» первая строка должна быть последней строкой предыдущей страницы, и текст дополняется пустыми строками, чтобы вместить это.

Я знаю, что могу получить размер строки и количество строк в текстовом поле, но можно ли получить количество строк , отображаемых в текстовом поле, за один раз, чтобы я мог вычислить сколько текста нужно будет дополнить? Глядя на список сообщений , которые я могу отправить через P / Invoke, я не вижу ни одного, чтобы запросить количество отображаемых строк.

1 Ответ

2 голосов
/ 13 марта 2009

Вы можете получить максимальное количество строк, отображаемых за один раз, рассчитав высоту шрифта и поделив на это высоту текстового поля.

Просто идея ... Не уверен, что все получится правильно, но вы могли бы сделать несколько тестов и посмотреть, соответствует ли это.

Чтобы получить шрифт Высота:

public SizeF MeasureString ( текст строки, Шрифт )

...