powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как ограничить ввод в RichTextBox его размерами?
11 сообщений из 11, страница 1 из 1
Как ограничить ввод в RichTextBox его размерами?
    #32809120
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е что бы ввод был возможен только в видимой части контрола и не появлялись бы скроллы.
т.е. пишу текст и как только дошёл до границы бокса - СТОП дальше низзя.
Мысль такая: отследить появление вертикального скролла, удалить последний введённый символ, убрать скролл.

Как бы это сделать?

-------------------------------------------------------------------------
Нет худа без добра, да и добро без худа - чудо.
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32809209
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
M234
Мысль такая: отследить появление вертикального скролла, удалить последний введённый символ, убрать скролл.


Чё то мне уже не нравится эта мысль.
Надо как то определить, что больше не влазит и что нужен скролл, а если он уже появился то уже поздновато пить известную минеральную воду :).
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811432
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, но ведь как-то же RichTextBox "узнаёт", что текст не умещается в видимую область и пора скроллы показывать.

Как это делается? Есть хоть какие-нить мысли? У меня уже нет :(

H E L P !

H I L F E !

К А Р А У Л !
-------------------------------------------------------------------------
Нет худа без добра, да и добро без худа - чудо.
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811696
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDNRichTextBox.ContentsResized EventSee
Occurs when contents within the control are resized

Код: plaintext
1.
2.
3.
4.
		private void richTextBox1_ContentsResized(object sender, System.Windows.Forms.ContentsResizedEventArgs e)
		{
			if (e.NewRectangle.Height>richTextBox1.Height)
			MessageBox.Show("Vertical Scroll !");
		}
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811717
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какое-то позднее зажигание у этого ContentResized, Content давно уже Resized и скролл уже появился а он тока со второй лишне строчки сообразил.

-------------------------------------------------------------------------
Нет худа без добра, да и добро без худа - чудо.
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811749
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
M234Какое-то позднее зажигание у этого ContentResized, Content давно уже Resized и скролл уже появился а он тока со второй лишне строчки сообразил.

Событие отрабатывает когда изменяются размеры текста в контроле. Как по высоте, так и по ширине. Так что ни о каком "позднем зажигании" речь не идет.
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811773
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov M234Какое-то позднее зажигание у этого ContentResized, Content давно уже Resized и скролл уже появился а он тока со второй лишне строчки сообразил.

Событие отрабатывает когда изменяются размеры текста в контроле. Как по высоте, так и по ширине. Так что ни о каком "позднем зажигании" речь не идет.

Ну я же говорю, скрол уже появился, размеры уже изменились а события нет и только
в момент написания второй лишней строчки появляется сообщение.
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811795
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы на вашем месте ограничил число вводимых символов в свойстве MaxLengh

Но если вы хотите отлавливать появление Scroll-а - придется возиться с событием ContentResized
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811867
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KudinovЯ бы на вашем месте ограничил число вводимых символов в свойстве MaxLengh


И как вы себе это представляете? 12ым шрифтом войдёт 100 символов, а 32 уже только 10 например. Каждая буква может быть написана разным шрифтом, размером и стилем и выравнивание строки может иметь место. Так какой MaxLengh задавать?

Alexey Kudinov
Но если вы хотите отлавливать появление Scroll-а - придется возиться с событием ContentResized

Не надо мне событий говорящих о том, что скролл уже появился. После нажатия клавиши мне нужно узнать а не вылезет ли этот символ за рамки и если да, то не дать ни ему ввестись ни соответственно скроллу появится.
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32811959
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
M234
И как вы себе это представляете? 12ым шрифтом войдёт 100 символов, а 32 уже только 10 например. Каждая буква может быть написана разным шрифтом, размером и стилем и выравнивание строки может иметь место. Так какой MaxLengh задавать?
если мы говорим о System.Windows.Forms.RichTextBox, то в нем текст можно написать тем шрифтом, который указан в свойстве Font. И это поведение по умолчанию. На основании этого, я вам предложил стандартное же решение - использовать свойство MaxLengh
Но вы, оказывается, хотите использовать его как аналог Word-processor-а

Так что, увы, в вашем случае не могу предложить ничего лучше анализа параметров события ContentResized и вычисления не вышел ли Rectangle текста за пределы "рамочки"

PS: а как должен вести себя ваш компонент, если пользователь (например) увеличил размер шрифта и из-за этого текст перестал помещаться в видимую область ?
...
Рейтинг: 0 / 0
Как ограничить ввод в RichTextBox его размерами?
    #32812024
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kudinov
....
Так что, увы, в вашем случае не могу предложить ничего лучше анализа параметров события ContentResized и вычисления не вышел ли Rectangle текста за пределы "рамочки"

PS: а как должен вести себя ваш компонент, если пользователь (например) увеличил размер шрифта и из-за этого текст перестал помещаться в видимую область ?

Не должен дать ему это сделать. Вывести сообщение, что текст не влазит.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как ограничить ввод в RichTextBox его размерами?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]