Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 24.07.2007
Сообщений: 178

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

16.04.2008, 18:48. Показов 1350. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru