Опять про выделение текста

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Опять про выделение текста

Сообщение A.A.Z. » 23.08.2003 (Сб) 13:58

Как-то давно я спрашивал, как выделить текст в TextBox'e. Тогда я привёл пример с поиском в нём, мне и ответили тогда про поиск. Но всё-таки мне хочется узнать, как выделять текст? Не важно, в TextBox'e ли, или где-то ещё, и, что самое главное, НЕ ПРИ ПОИСКЕ!
Подскажите, плиз, кто знает - очень надо... :roll:

P.S. Кто не понял:
(Например)

Код: Выделить всё
Private Declare Function Select Lib "library" Alias "Select" (String As String, Start As Long, Length As Long)

Private Sub Command1_Click()
Text1.Text = "abcdefg1234567890"
Select(Text1.Text, 3, 10) 'Выделится "defg123456"
End Sub



Что-то в этом роде... :roll:
Нет меня больше

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

Сообщение GSerg » 23.08.2003 (Сб) 14:27

Код: Выделить всё
Function FindAndSelect(TB As TextBox, ByVal s As String, Optional CaseSensitive As Boolean = False) As Boolean
  Dim i As Long
  If CaseSensitive Then i = InStr(TB, s) Else i = InStr(LCase$(TB), LCase$(s))
  If i Then TB.SelStart = i - 1: TB.SelLength = Len(s): TB.SetFocus: FindAndSelect = True
End Function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение alibek » 23.08.2003 (Сб) 15:52

Помоему ему нужно вот это:
Код: Выделить всё
Text1.SelStart = 3
Text1.SelLength = 10


2 GSerg, а я бы упростил код :) Заменил бы третью строчку на:
Код: Выделить всё
i = InStr(1, TB.Text, s, IIf(CaseSensitive, vbBinaryCompare, vbTextCompare))
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение GSerg » 24.08.2003 (Вс) 6:22

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

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 24.08.2003 (Вс) 20:26

Спасибо, насчёт TextBox, SelStart и SelLength я понял, а как насчёт других контролов, например, DBGrid (я как раз сейчас с ним работаю)?? :oops:
Нет меня больше


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

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

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

    TopList