Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поведение RichTextBox в WIN 10 / 12 сообщений из 12, страница 1 из 1
11.06.2019, 18:16
    #39825545
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Здравствуйте, уважаемые!
Очень нужна помощь, сам пока в растерянности. Есть программка, довольно давно написанная. В ней на форме лежит Panel, в неё добавляются UserControl вертикально, друг под другом. в этих контролах находятся RichTextBox с небольшим количеством текста. RichTextBox без полос прокрутки, т.к. их размер подгоняется под текст. Когда UserControl на панели становится много - появляется вертикальный скролл панели и колёсиком всё прекрасно прокручивается. Прекрасно - это в win XP, WIN 7 и всех версиях WIN SERVER с 2008 по 2012 R2. А вот внезапно оказалось, что в WIN 10 (и WIN SERVER 2016) при попадании указателя мышки на RichTextBox скролл панели не работает! что бы пролистать её дальше - необходимо увести мышь на любой другой элемент.
Т.е. я так понимаю что пытается работать прокрутка RichTextBox. Событие перехватывается только им и не доходит до панели?
Если RichTextBox.Enable = false , то этой фигни не наблюдается - пролистывается панель. Проблема в том что RichTextBox имеет разный цвет фона, в зависимости от содержимого. а при Enable = false фон просто серый, беда.
...
Рейтинг: 0 / 0
13.06.2019, 12:55
    #39826107
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Andry_Палыч,

RichTextBox используется только для отображения информации?
...
Рейтинг: 0 / 0
13.06.2019, 13:29
    #39826137
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
скорее всего после фокусировки объект захватывает мышку, попробуйте переопределить методы связанные с фокусом и кликами мышки или принудительно освободите мышку
...
Рейтинг: 0 / 0
13.06.2019, 16:24
    #39826233
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
pation, да, он в readonly. Используется именно он из-за возможности визуального выделения разных блоков текста (шрифт и цвет)
...
Рейтинг: 0 / 0
13.06.2019, 16:29
    #39826241
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Roman Mejtes,
по получению фокуса уже стоит вызов функции фокусировки другого контрола (controlName.Focus()). а принудительно мышку освободить - это как? :)
...
Рейтинг: 0 / 0
13.06.2019, 16:33
    #39826246
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Да и нет тут получения фокуса. Мышкой не щёлкается по RichTextBox-у, достаточно навести курсор и всё - прокрутка панели блокируется (((
...
Рейтинг: 0 / 0
13.06.2019, 20:08
    #39826332
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Andry_Палыча при Enable = false фон просто серый, беда.
Почему такой косяк не знаю, но попробуйте дать richTextBox.Readonly=true
...
Рейтинг: 0 / 0
14.06.2019, 12:43
    #39826550
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Cat2, он уже и так Readonly=true :)
...
Рейтинг: 0 / 0
17.06.2019, 16:00
    #39827312
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Andry_Палычpation, да, он в readonly. Используется именно он из-за возможности визуального выделения разных блоков текста (шрифт и цвет)
я бы посоветовал для этих целей использовать не RichTextBox, а WebBrowser
...
Рейтинг: 0 / 0
17.06.2019, 16:27
    #39827336
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/mouse-capture-in-windows-forms
Если RichTextBox захватывает мышку, то все события мышки будет обрабатывать именно этот элемент управления, где бы мышка не находилась.
Если какой то другой объект захватит мышку, то все события будет обрабатывать он, а другие элементы управления идут лесом.
Если RichTextBox не реагирует на мышку, значит кто то эту мышку захватил и удерживает, не давая другим элементам управления обрабатывать связанные с ней события.
я не особо работаю с WinForms, но этому на практике подскажу едва ли, может и не в этом дело вовсе, но проверить стоит.

в WPF можно захватом управлять как в рамках класса Control.CaptureMouse(), так и с помощью менеджера мышки Mouse.Capture() и т.д. как с этим дела обстоят в WinForms не имею понятия
...
Рейтинг: 0 / 0
18.06.2019, 19:44
    #39827945
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
Roman Mejtes,
спасибо за предложенную идею, но увы "В Windows Forms имеет захват мыши элементом управления при нажатии кнопки мыши на элемент управления, и который мышь выпускается элементом управления, когда пользователь отпускает кнопку мыши."
MouseCaptureChanged() срабатывает только на щелчки любыми кнопками. Прокрутка колеса его не интересует ))))
...
Рейтинг: 0 / 0
18.06.2019, 19:45
    #39827946
Andry_Палыч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поведение RichTextBox в WIN 10
pation, спасибо, попробую
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поведение RichTextBox в WIN 10 / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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