Предлагаю пример того что у меня не работает. Создайте форму, на ней кнопка (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