1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178

Два бага, касающихся RichTextBox

16.04.2008, 18:48. Показов 1354. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два бага, касающихся RichTextBox, которые никак не могу устанить:

1) В Win2000 шрифт (имя шрифта) выделенного текста все время возращается в Tahoma. Т.е. я меняю в свойстве Font имя шрифта на, скажем, Verdana, а когда начинаю писать в поле, то пишиться Tahom'ой.
В Win98 - все нормально.

2) Встаю на RichTextBox - язык переключается на русский, я меняю снова на английский, начинаю печатать - а раскладка снова переключается и вместо 'hello' получаю 'руддз'. 'Не очень' удобно

Если кто сталкивался с такими проблемами - пожалуйста, ответьте.
Без устанения этого - показать программу даже стыдно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2008, 18:48
Ответы с готовыми решениями:

Исправить два бага (выделение ячейки/значок на панели задач)
Не могу никак исправить два бага, проект скидываю (файл Релиз.rar), а также описание этих багов (файл Баги.rar) и те способы, которые я...

Два RichTextBox'а с общей границей
Доброе время суток! Есть проблемка. Не знаю как сделать 2 RichTextBox с общей границей. Как, например, в QIPе между полями переписки и...

Несколько вопросов, касающихся DIV'а
Здравствуйте! Бытует мнение, что для верстки html-страницы предпочтительней использовать тег <DIV> вместо <TABLE>. Тем более...

8
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
17.04.2008, 14:48
Напиши как ты фонт меняешь в коде?
0
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
17.04.2008, 15:28  [ТС]
У меня Rich в дочерних окнах - типа MDI-интерфейс. Что-то типа MDI-блокнота, например.
При загрузке очередного child-окна я, естественно, устанавливаю некоторые хар-ки по умолчанию (ну там, имя файла в caption формы и др. в том числе и шрифт.
Упрощенно это примерно так:
Code
1
2
 font_face='Fixedsys'
 txtContent.Font.Name = font_face
Все.

=======================

Дополнение к вопросу о переключении языка:
Я понаблюдал внимательней и оказалось еще прикольней: Rich меняет язык на тот, которым написана предыдущая буква в тексте.
Ну, это уже за гранью доступного. Это очень не удобно.
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
17.04.2008, 16:19
Попробуй делать так:
Visual Basic
1
2
3
4
5
        With Me.RichTextBox1.Font
                .Name = 'Arial'
                .Size = 12
                .Charset = 204
        End With
0
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
17.04.2008, 17:44  [ТС]
to Konst_one: не помогло!
0
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
17.04.2008, 17:47  [ТС]
Тут косяк состоит в том, что когда меняешь шрифт выделенного текста на какой-нибудь другой, то он изменяется только после события KeyPress, когда буква типа появиться...
0
eddy
20.04.2008, 14:10
'...Тут косяк состоит в том, что когда меняешь шрифт выделенного текста на какой-нибудь другой, то он изменяется только после события KeyPress, когда буква типа появиться...'

Не совсем корректно. При выделении строки есть еще и событие SelChange(). Если участвует в работе мышь, можно смело учесть MouseDown()

Поэтому корректно можно обработать фонт так, как написал Konst_one. Я сам написал 2 недели назад редактор вопросов - все нормально. Проблема в том, что текст при запуске формы с RTF выводится шрифтом по умолчанию. Поэтому я использовал следующий код:
Visual Basic
1
2
3
4
5
6
With RTF
   .SelStart = 0
   .SelLength = Len(.Text)
   .Font = 'Arial'
   .Charset = 204
End With
Есть еще одна проблема. Невооруженным глазом видно форматирование текста. Поэтому этот процесс надо заблокировать на время. Перед и после With RTF я ставил API Function LockWindowUpdate()

Т.о получаем
Visual Basic
1
2
3
4
5
6
7
8
LockWindowUpdate RTF.hwnd '// RTF сам является оконом
With RTF
   .SelStart = 0
   .SelLength = Len(.Text)
   .Font = 'Arial'
   .Charset = 204
End With
LockWindowUpdate 0&
Возвращаясь к раскладке клавиатуры. Такая проблема есть. Иногда. Существует способ программно определить текуший язык и поставить иконку на ToolBar. Нажата - русский, отжата - английский. Так намного удобнее, и в ряде случаев позволяет обойти все неприятности.
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
22.04.2008, 20:19  [ТС]
to eddy:
Вроде вставил как Вы сказали, но что-то либо ничего не происходит, либо возникает ошибка, что память зашла на запрещенный участок...

И по пути вопрос (типоватый, конечно что значить charset?

А про язык, надо что-либо toolbar, который принадлежит windows всмысле, перекрыть и поставить свой значек на синию 'Ru/En'?

Заранее спасибо.
0
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178
22.04.2008, 22:07  [ТС]
Да, совсем забыл: если выделать весь текст и менять шрифт выделенного текста, т.е. всего, то при смене выделенного текста событие SelChange будет, что есть бесконечный цикл. Вроде бы так.
Жду ответа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2008, 22:07
Помогаю со студенческими работами здесь

Изображение двух касающихся окружностей
Как осуществить в Visual Basic в консольном приложении рисунок:

Составить уравнение окружностей, касающихся двух прямых
4)Составить уравнение окружностей касающихся двух прямых: 7x-y-5=0 и x+y+13=0, причем одной из них в точке M(1,2). Прошу вас, хоть...

Найти координаты центров и радиусы окружностей, касающихся 3-х прямых
Нужно найти координаты центров и радиусы окружностей ок:= (x-x0)^2+(y-y0)^2-r^2 касающихся 3-х прямых L1:= x+y-2 L2:= x-y+4 L3:=x-7y ....

Найти коэффициенты уравнений касающихся двух кругов в заданных точках
Найти коэф. уравнений касающихся двух кругов в заданных точках (координаты точек и центров кругов и их радиусы задаются) и включить эти...

Получить 40 окружностей в один ряд одинакового радиуса, касающихся друг друга
Нужно решение через цикл for, срочно!!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru