как сопоставить полосу прокрутки со строками в RichTextBox - PullRequest
0 голосов
/ 24 января 2020

Я добавляю кнопки (с текстом и изображениями) к элементу управления richtextbox, но поскольку я не использую следующую строку:

richTextBox1.AppendText(Environment.NewLine + str);

Полоса прокрутки не соответствует итоговой количество строк, и не изменяет размер должным образом, как я могу решить это?

1 Ответ

0 голосов
/ 24 января 2020

Что происходит не так

Я считаю, что это очень необычный способ делать вещи. Итак, сначала давайте добавим небольшой фон:

Когда вы используете richTextBox1.Controls.Add(new button()) - то, что вы делаете: вы добавляете новую кнопку как дочерний из richtextbox, а не как контент - и это проблема.

Полосы прокрутки настроены на считывание их высоты / области прокрутки и т. д. c из содержимого richtextbox, и у вас нет содержимого, следовательно, нет полосы прокрутки (или ложные показания и т. д. c).

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

Правильный путь

Я не знаю ваш вариант использования, поэтому это может не сработать, но я бы удалил richtextbox контролировать и вместо этого использовать panel контроль. Например, панель управления обновит свои полосы прокрутки на основе дочерних элементов управления, тогда как richtextbox не будет - и это должно дать вам ожидаемое поведение.

...