Как в RichTextBox узнать строку,на которой находится курсор?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Как в RichTextBox узнать строку,на которой находится курсор?

Сообщение Vovik » 02.12.2003 (Вт) 15:41

Вот в общем то и весь вопрос...... :?:

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

Вопрос - ответ!

Сообщение hCORe » 02.12.2003 (Вт) 18:33

Используй этот код:

Код: Выделить всё
Private Sub RichTextBox1_SelChange()
'Показать номер строки через GetLineFromChar
DoEvents
    Static Stlb as Long, Lnx as Long
    Stlb = RichTextBox1.SelStart
    Lnx = RichTextBox1.GetLineFromChar(Stlb) + 1
    MsgBox "Строка " & Trim(Str(Lnx))
End Sub


Или его Win32 API-аналог (он еще показывает и текущую позицию символа):

Код: Выделить всё
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const EM_LINEFROMCHAR = &HC9
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1

Public Sub GetEditStatus()
   Dim lLine As Long, lCol As Long
   Dim cCol As Long, lChar As Long, I As Long

   lChar = RichTextBox1.SelStart + 1

   ' Номер строки
   lLine = 1 + SendMessageLong(RichTextBox1.hWnd, EM_LINEFROMCHAR, _
           RichTxtBox.SelStart, 0&)

   ' Позиция курсора
   cCol = SendMessageLong(RichTxtBox1.hWnd, EM_LINELENGTH, lChar - 1, 0&)

   I = SendMessageLong(RichTxtBox1.hWnd, EM_LINEINDEX, lLine - 1, 0&)
   lCol = lChar - I

   MsgBox "Строка: " & lLine & ", Столбец: " & lCol

End Sub


Не забудь сказать спасибо папочке :lol:
Моду создают модоки, а распространяют модозвоны.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Re: Вопрос - ответ!

Сообщение Vovik » 02.12.2003 (Вт) 20:08

hCORe писал(а):Не забудь сказать спасибо папочке :lol:

Спасибки тебе!!! Папан!!! :lol:


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

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

Сейчас этот форум просматривают: AhrefsBot, Bing-бот, Google-бот и гости: 41

    TopList