Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Очень НУЖНО!!! Поиск в RICHTEXTBOXE Добавлено: 26.04.04 20:02  

Автор вопроса:  FleksS
У меня проблема. Допустим я ввел в RICHTEXTBOXE предложение на русском языке. Потом хочу найти какое-нибудь слово. Но если в данный момент у меня раскладка языка клавиатуры не на русском, то он мне слово на русском языке не находит и наоборот.  Как мне выйти из этой ситуации???

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #1
Добавлено: 27.04.04 00:19

Я не совсем понял при чём тут раскладка, но поробуй Instr или InstrRev

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 27.04.04 00:58

А я вот вопрос понял, но помочь не могу, у меня при любой раскладке осуществляется поиск... Правда я смотрел на API'шном...

Ответить

Номер ответа: 3
Автор ответа:
 FleksS



Вопросов: 3
Ответов: 6
 Профиль | | #3 Добавлено: 27.04.04 02:48

Предлагаю пример того что у меня не работает. Создайте форму, на ней кнопка (Command2) и RichTextBox1. Перед нажатием на кнопку поместите фокус на RichTextBox1 и поменяйте раскладку например  на английскую. При этом у меня текст в RichTextBox1 форматируется неправильно, все идет в одну строчку. Но если вы перед нажатием на кнопку поместите фокус на RichTextBox1  и выберите русскую раскладку, то текст будет правильно отформатирован.

Dim Разница As Integer

Dim РазницаГ As Integer

Dim РазницаВ As Integer

Private Sub Форматирование(ByVal Текст1 As String, _

ByVal Жирность As Byte, _

ByVal Шрифт As String, _

ByVal РазмерШрифта As Byte, _

ByVal Подчеркнутый As Byte, _

ByVal Текст2 As String, _

ByVal Выравнивание As Byte, _

ByVal Красный As Byte, _

ByVal Зеленый As Byte, _

ByVal Синий As Byte)

Dim Start As Integer

Start = RichTextBox1.Find(Текст1, 0, , rtfWholeWord)

RichTextBox1.Span "?", True, True

RichTextBox1.SelLength = RichTextBox1.SelLength + 1

Start = RichTextBox1.SelStart + RichTextBox1.SelLength + 1

RichTextBox1.SelBold = Жирность

RichTextBox1.SelFontName = Шрифт

RichTextBox1.SelFontSize = РазмерШрифта

RichTextBox1.SelUnderline = Подчеркнутый

RichTextBox1.SelColor = RGB(Красный, Зеленый, Синий)

RichTextBox1.SelText = Текст2

RichTextBox1.SelAlignment = Выравнивание

'RichTextBox1.SelStart = Start

 

End Sub

Private Sub ПоказатьРезультаты()

RichTextBox1.Text = "РЕЗУЛЬТАТЫТЕСТА?" & vbCrLf & vbCrLf & vbCrLf & vbCrLf

RichTextBox1.Text = RichTextBox1.Text + "Названиетеста:?" & vbCrLf

RichTextBox1.Text = RichTextBox1.Text + "Всеговопросов:?" & vbCrLf

RichTextBox1.Text = RichTextBox1.Text + "Ответов:?" & vbCrLf

RichTextBox1.Text = RichTextBox1.Text + "Правильныхответов:?" & vbCrLf

Форматирование "РЕЗУЛЬТАТЫТЕСТА?", 1, "Times New Roman" _

, 14, 1, "РЕЗУЛЬТАТЫ ТЕСТА", 2, 0, 0, 255

Форматирование "Названиетеста:?", 1, "Times New Roman" _

, 12, 0, "Название теста:", 0, 0, 0, 255

Форматирование "Всеговопросов:?", 1, "Times New Roman" _

, 12, 0, "Всего вопросов:", 0, 0, 0, 255

Форматирование "Ответов:?", 1, "Times New Roman" _

, 12, 0, "Ответов:", 0, 0, 0, 255

Форматирование "Правильныхответов:?", 1, "Times New Roman" _

, 12, 0, "Правильных ответов:", 0, 0, 0, 255

 

End Sub

Private Sub Command2_Click()

ПоказатьРезультаты

End Sub

Private Sub Form_Activate()

ПоказатьРезультаты

RichTextBox1.Visible = True

End Sub

Private Sub Form_Load()

RichTextBox1.Visible = False

'РазницаГ = (Me.Width - RichTextBox1.Width)

'РазницаВ = (Me.Height - RichTextBox1.Height)

 

End Sub

Private Sub Form_Resize()

'RichTextBox1.Width = Me.Width - РазницаГ

'RichTextBox1.Height = Me.Height - РазницаВ

End Sub

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 27.04.04 10:38

Да, действительно тухло...

Попробовал код - нифига не ищет. Пробовал через EM_FINDTEXT - та же байда... Возможно, поможет EM_FINDTEXTW...

Как вариант - перед форматированием менять раскладку через

LoadKeyboardLayout "00000419", KLF_ACTIVATE

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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам