У нас есть несколько многострочных, прокручиваемых элементов управления текстовыми полями Winforms в .NET 2.0, которым необходимо реализовать разбиение на страницы, чтобы позволить пользователю перемещаться по их содержимому только путем перемещения одной страницы (полный контроль над стоимостью текст) за раз.Winforms textbox lines на страницу
Как часть этого, мне нужно получить количество полных строк текста, которые могут быть видны на экране в любой момент, чтобы определить, сколько страниц содержит текстовое поле.
Я уверен, что нет сообщения Windows, которое позволит мне получить эту информацию напрямую и не смогу выработать приемлемое решение этой проблемы.
Ниже приведено настоящее решение, которое, как правило, дает ошибку округления по меньшей мере одной линии, поэтому она была менее успешной.
public int LinesPerPage
{
get
{
return (int)(this.Height/this.Font.Height);
}
}
В идеале я хотел бы знать алгоритм, используемый при составлении текста в контроль, но если это не доступно и другие предложения люди были бы весьма признателен.
Если вы используете прокручиваемое текстовое поле, я предполагаю, что вы хотите, чтобы количество строк, которые могут вставляться в текстовое поле, прямо перед прокруткой? – SwDevMan81