RichTextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dimon_G
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 16.10.2003 (Чт) 20:25

RichTextBox

Сообщение Dimon_G » 07.12.2003 (Вс) 19:48

Подскажите пожалуйста: как сделать так что бы когда я отправляю техт из TextBox в RichTextBox в RichTextBox каждое отправленное сообщение выводилось с новой строки В ListBox есть AddItem, есть что нибудь подобное в RichTextBox ?

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 07.12.2003 (Вс) 20:18

в TextBox'е и RitchTextBox'е для этого применяется константа vbCRLF (Chr$(13) + Chr$(10))
Код: Выделить всё
Text1.Text = Text1.Text & strMyString & vbCrLf

у TextBox'а не забудь поставить MultiLine = True
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Dimon_G
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 16.10.2003 (Чт) 20:25

Сообщение Dimon_G » 07.12.2003 (Вс) 20:24

Спасибо Cyrax. Память тебе не изменяет. :D

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 07.12.2003 (Вс) 21:28

Все на этом.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.12.2003 (Пн) 9:55

Ну раз не закрыл, то упомянем ещё и про более, имхо, рульную константу vbNewLine :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.12.2003 (Пн) 12:21

Внесу свои пять копеек :)
Делать Text1.Text = Text1.Text & "abc" не есть гут. Это даже есть вэри бад. Лучше делать так:
Код: Выделить всё
Text1.SelStart = Len(Text1.Text)
Text1.SelLength = 0
Text1.SelText = "abc"


Особенно это хорошо это проявляется на RichTextBox, если текст содержит форматирование.
Lasciate ogni speranza, voi ch'entrate.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 08.12.2003 (Пн) 17:35

А еще лучше вообще не запрашивать свойство Text.
Код: Выделить всё
' Text1.SelStart = Len(Text1.Text)
Text1.SelStart = 1000000 ' или другая большая константа, помещающаяся в Long
Text1.SelText = "abc"
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 08.12.2003 (Пн) 19:44

да, да... папский способ =)) я типа такого использовал когда чат писал(типа МИРКи), там чтобы цветами можно было писать, жирным, подчеркнутым, и тд... вот код:
Код: Выделить всё

Public Type char
    cChar As String * 1
    cColor As Long
    cBold As Boolean
    cItalic As Boolean
    cUnderln As Boolean
End Type
...........
Sub WriteToChannel(chName As String, str)
Dim b As Boolean, i As Boolean, u As Boolean, c As Long
Dim cr As Byte, cg As Byte, cb As Byte
Dim k As Integer
Dim chArr() As char
Dim iChannelID As Integer
' поиск формы нужного канала
For k = 0 To UBound(ChatForms)
    If Not ChatForms(k) Is Nothing Then
        If Trim$(ChatForms(k).Tag) = Trim$(chName) Then
            iChannelID = k
            Exit For
        End If
    End If
Next k

c = RGB(0, 0, 0)
b = False
i = False
u = False
On Error Resume Next
Do While Len(str) > 0
    ReDim Preserve chArr(k)
    If Mid$(str, 1, 3) = "[b]" Then
        b = True
        str = Mid$(str, 4)
        GoTo cont
    End If
    If Mid$(str, 1, 4) = "[/b]" Then
        b = False
        str = Mid$(str, 5)
        GoTo cont
    End If
    If Mid$(str, 1, 3) = "[u]" Then
        u = True
        str = Mid$(str, 4)
        GoTo cont
    End If
    If Mid$(str, 1, 4) = "[/u]" Then
        u = False
        str = Mid$(str, 5)
        GoTo cont
    End If
    If Mid$(str, 1, 3) = "[i]" Then
        i = True
        str = Mid$(str, 4)
        GoTo cont
    End If
    If Mid$(str, 1, 4) = "[/i]" Then
        i = False
        str = Mid$(str, 5)
        GoTo cont
    End If
   
    If Mid$(str, 1, 2) = "[c" Then
        cr = CByte(Val(Mid$(str, 4, 3)))
        cg = CByte(Val(Mid$(str, 8, 3)))
        cb = CByte(Val(Mid$(str, 12, 3)))
        c = RGB(cr, cg, cb)
        str = Mid$(str, 16)
        GoTo cont
    End If
    If Mid$(str, 1, 4) = "[/c]" Then
        c = vbBlack
        str = Mid$(str, 5)
        GoTo cont
    End If
   
    If Mid$(str, 1, 2) = "[]" Then
        b = False
        i = False
        u = False
        c = vbBlack
        str = Mid$(str, 3)
        GoTo cont
    End If
   
    chArr(k).cChar = Mid$(str, 1, 1)
    With chArr(k)
        .cBold = b
        .cColor = c
        .cItalic = i
        .cUnderln = u
    End With
    str = Mid$(str, 2)
    k = k + 1
cont:
Loop

For k = 0 To UBound(chArr)
    With ChatForms(iChannelID).rtfText
        .SelBold = chArr(k).cBold
        .SelItalic = chArr(k).cItalic
        .SelUnderline = chArr(k).cUnderln
        .SelColor = chArr(k).cColor
        .SelText = chArr(k).cChar
    End With
Next k
ChatForms(iChannelID).rtfText.SelBold = False
ChatForms(iChannelID).rtfText.SelItalic = False
ChatForms(iChannelID).rtfText.SelUnderline = False
ChatForms(iChannelID).rtfText.SelColor = vbBlack
ChatForms(iChannelID).rtfText.SelText = vbCrLf

ChatForms(iChannelID).rtfText.SelStart = Len(ChatForms(iChannelID).rtfText.Text)
End Sub


такая фигня может писать 255^3 цветов + жирный, подчеркнутый+наклонный =))
Кстати работает на удивление быстро =))
работает все вот так:
[c 255 000 000]текст[/c] (красный текст)
текст
текст
текст
[] - закрывает ВСЕ
так же можно все это сочитать:
[b][u][i][c 100 100 100]текст[]


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 10

    TopList