Вопрос о RichTextBox

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

Вопрос о RichTextBox

Сообщение Black_T » 17.01.2006 (Вт) 18:34

RTB.SelText="100 "
RTB.SelText="200"

Получу следующее:
100 200

А как сделать чтобы было так ?
100
200
Т.е. чтобы печаталось с новой строки ?

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 17.01.2006 (Вт) 18:44

RTB.Text = RTB.Text & vbNewLine & "100" & vbNewLine & "200"
Моду создают модоки, а распространяют модозвоны.

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 17.01.2006 (Вт) 20:25

Добавляй в конце строки vbCrLf
То, что для одних константа, для других только переменная...

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 17.01.2006 (Вт) 23:45

А вот как например в textBoxe если используеться MultiLine = True получить текст именно той строки в которой я пишу, а аткже её координаты?
#define ROFL 0xDDDD

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 18.01.2006 (Ср) 0:04

Как-как. Ручками - получить текущую координату курсора, разбить текст и найти нужную строку ;)
То, что для одних константа, для других только переменная...

Black_T
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.01.2006 (Вт) 18:25

Сообщение Black_T » 18.01.2006 (Ср) 10:18

Спасибо!
А кто-нибудь может подсказать есть ли хорошие статьи в сети
по выводу информации в Richtextbox ?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 18.01.2006 (Ср) 17:11


Black_T
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.01.2006 (Вт) 18:25

Сообщение Black_T » 21.01.2006 (Сб) 17:17

А можно в RTB вместе с текстом вставлять спец. символы,
например буквы греческого алфавита ?
И если можно то как ?

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 23.01.2006 (Пн) 14:39

Вот этот код я использую в своём ридере в окне редактора.
Это по поводу текущей строки и символа в строке.
Вроде бы работает без ошибок.
На форму положи RichTextBox (идентификатор RTBedit) и лабел (lblStatus).
В модуле формы пропиши нижележащий код.

Код: Выделить всё
Private Const EM_GETSEL As Long = &HB0
Private Const EM_LINEFROMCHAR As Long = &HC9
Private Const EM_LINEINDEX As Long = &HBB
Private Const EM_LINELENGTH As Long = &HC1


Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
     ByVal hwnd As Long, _
     ByVal wMsg As Long, _
     ByVal wParam As Long, _
     lParam As Any) As Long


Option Explicit

Private Sub RTBedit_SelChange()
    Dim lSelStart As Long, lSelLength As Long
    Dim CharPos As Long, Lineindex As Long, LineLength As Long, ColIndex As Long
    Dim Ret As Long, arrTmp() As String
    If Not (Me.Visible) Then Exit Sub
    With RTBedit
        Ret = SendMessage(.hwnd, EM_GETSEL, lSelStart, lSelLength)
        Lineindex = SendMessage(RTBedit.hwnd, EM_LINEFROMCHAR, lSelLength, 0) + 1
        LineLength = SendMessage(.hwnd, EM_LINELENGTH, Lineindex - 1, 0)
        CharPos = SendMessage(RTBedit.hwnd, EM_LINEINDEX, -1, 0)
        ColIndex = lSelLength - CharPos
        If .SelLength > 0 Then
            arrTmp() = Split(.SelText, vbCrLf)
            LblStatus.Caption = "Selected: Lines - " & IIf(UBound(arrTmp) = 0, 1, UBound(arrTmp)) & ": Symbols - " & .SelLength
        Else
            LblStatus.Caption = "Line " & Lineindex & ": Col " & ColIndex
        End If
    End With
End Sub
Private Function GetCurrentLineLen() As Long
    Dim S As String
    Dim nLen As Long
    Dim nChar As Long

    Const nLine = 2

    nChar = SendMessage(RTBedit.hwnd, EM_LINEINDEX, Lineindex - 1, ByVal 0&)
    If nChar <> -1 Then
        nLen = SendMessage(RTBedit.hwnd, EM_LINELENGTH, nChar, ByVal 0&)
        If nLen < 2 Then nLen = 2
        S = String$(2, 0)
        CopyMemory ByVal S, nLen, 2
        S = S & String$(nLen - 2, 0)
        nLen = SendMessage(RTBedit.hwnd, EM_GETLINE, Lineindex - 1, ByVal S)
        GetCurrentLineLen = Len(Left$(S, nLen))
    Else
        GetCurrentLineLen = 0
    End If
   
End Function
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Black_T
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.01.2006 (Вт) 18:25

Сообщение Black_T » 02.02.2006 (Чт) 17:38

А как установить курсор в определенный столбец и строку ?
И можно ли сделать в RTB таблицу ?

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 02.02.2006 (Чт) 18:51

Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 03.02.2006 (Пт) 14:06

Можно - практически все. Но - очень сложно, в особенности когда дело доходит до таблиц. Я себе на них в свое время реально мозги вывихнул, после чего решил, что отныне я с таблицами работаю либо в гриде, либо в HTML.

Black_T
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.01.2006 (Вт) 18:25

Сообщение Black_T » 06.02.2006 (Пн) 11:03

Понял уже, спасибо!
Тут дело было вот в чем,
я результаты расчета отправлял в текстовый файл,
но числа были очень разные, и все строки скакали относительно друг друга...
Теперь слелал вывод в excel и все ок!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList  
cron