Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для VIsuaL_DG
0 / 0 / 0
Регистрация: 01.01.2013
Сообщений: 26

Выделение всей троки в TextBox

11.02.2014, 16:54. Показов 2792. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Нужна ваша помощь по Visual Basic 6

В форме имеется textbox1 и textbox2. Второй не виден и содержит по строчно текст.Например:

1- "Первый блаблаблаб"
2- "Второй -плаплаплапла"
3- "Третий-флафлафлафла"

Вопрос:

Как можно сделать так, чтобы когда юзер вводит в TextBox1 слово "Первый" то выделялась вся строка с этим словом?

Например:

В TextBox1 ввожу "Второй" и мне в label1.Сaption выводится "Второй -плаплаплапла"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2014, 16:54
Ответы с готовыми решениями:

Выделение всей строки в контроле TextBox
Представляю на ваш суд метод выделения в текстбоксе строки, в которой находится курсор, целиком и сразу. Строка может быть любая. ...

Выделение всей строки в TextBox по клику мыши
В TextBox выводится некий текст циклом построчно, разделитель новой строки - \r\n: foreach(string s in split) { textBox1.Text +=...

Выделение в ListView всей строки
Есть список с колонками. Каждый элемент списка (ряд) представлен несколькими контролами. Необходимо чтобы при попадании фокуса ввода на...

44
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 17:29
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'Выделение всего текста
Private Sub Text1_DblClick()
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1)
End Sub
 
'передача лейблу
Private Sub Text1_Change()
    Label1.Caption = Text1
End Sub
 
'передача лейблу выделяемой часте в режиме выполнения
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button Then
        Label1.Caption = Text1.SelText
    End If
End Sub
Добавлено через 8 минут
Это далеко не все возможности, на что способен TextBox
думаю этот пример позволит вам вдоволь наиграться

Visual Basic
1
2
3
Private Sub Text1_Change()
    CreateObject("SAPI.SpVoice").Speak Text1
End Sub
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 17:44
если вместо textbox2 использовать List1, должно быть проще
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 17:50
Тогда уж ComboBox
1
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 18:03
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
Тогда уж ComboBox
точно?
0
 Аватар для VIsuaL_DG
0 / 0 / 0
Регистрация: 01.01.2013
Сообщений: 26
11.02.2014, 18:08  [ТС]
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
[VB]'Выделение всего текста
Visual Basic
1
2
3
Private Sub Text1_Change()
    CreateObject("SAPI.SpVoice").Speak Text1
End Sub
Отдельное спасибо за фишку!

Добавлено через 3 минуты
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
'Выделение всего текста
Private Sub Text1_DblClick()
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
End Sub
'передача лейблу
Private Sub Text1_Change()
Label1.Caption = Text1
End Sub
Спасибо за своевременный ответ. Только вы наверно не поняли или что-то не понял Я?!
Я делаю что-то наподобии переводчика.

Юзер в первое поле вводит СЛОВО и программа ищет это слово во втором поле и отображает это слово и строку после него в label1.Caption

Сложнор реализовать? По массивам знания 0 с минусом!
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 18:20
Ну тогда действительно лучше всего использовать ComboBox

1 - Хранение массива в его списке
2 - Поддерживает сортировку
3 - Отображение однокоренных слов во время ввода

Добавлено через 5 минут
Это если вы к примеру добавляете слово и его перевод,
ну надо же знать есть ли в словаре уже имеющиеся слова
либо ComboBox, либо TextBox в сочетании с ListBox
я делал очень давно один из первых проектов так-сказать, из за чего и освоил бейсик
прог-у которая дословно переводит текст
0
 Аватар для VIsuaL_DG
0 / 0 / 0
Регистрация: 01.01.2013
Сообщений: 26
11.02.2014, 18:23  [ТС]
Возможно нужно будет попробовать с ListBox'ом поработать!
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 18:31
Потребуется файл словарь где все слова например храняться в таком виде: <Handle - Ручка>
метод добавления нового слова
и способ быстрого анализа и перевода, чтоб отличить слово это или набор символов

Добавлено через 2 минуты
Кстате файл словаря может быть Англо-русский
а при загрузке создаёться русско-английский, и сортируется
т-что у тебя будет 2 словаря одного языка
или вторая пара к языкам, если у тебя многоязычная программа

Но дословный перевод, на деле не очень понятен
нужен анализ словосочетаний, но это уже гораздо сложнее реализовать
у меня когда интернета не было, я вынуждел был самостоятельно сделать такой переводчик
потому-что первые файлы справки по програмированию и прочему железу
были исключительно на английском
а словарь просто извлёк из тупой программы сомнительного производителя

Форумчанин



Регистрация: 06.01.2014
Сообщений: 234
Репутация: 85 (53)
Записей в блоге: 1
Лучшие ответы: 1
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 18:33
для примера
Вложения
Тип файла: txt Form1.txt (2.0 Кб, 11 просмотров)
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 18:53
...

Добавлено через 18 минут
у ListBox, как и у ComboBox есть свойство Sorted (сортировка тоесть)
но изменяется только в проектировании, вобщем я дал только советы
если найду у себя ту старейшую мою прогу, скину

Хотя если тебе нужны алгоритмы быстрой сортировки и поиска то вот
научишся и поймеш что такое массивы, измениш знания с 0 на +1 )

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
Option Explicit
 
Public Enum F_Compare
    [Числовые элементы] = 0
    [Текстовые элементы] = 1
    [По убыванию] = 2
    [Игнорировать регистр] = 4
    [Учёт длины элементов] = 8
End Enum
Private FMax As Long, j() As String, n&, s$
 
Public Function Find&(List As Variant, ByVal Elm As Variant, _
Optional Flag As F_Compare)
    'Бинарный поиск
    'Возврат положительного числа найденной позиции элемента в списке
    'Арг: Список // Элемент // Флаги сравнений
    Find = LBound(List)
    FMax = UBound(List)
 
1
    While FMax > Find
        Find = Fix((Find + FMax) / 2)
        On Compare(Elm, List(Find), Flag) + 1 GoTo 2, 3
        FMax = Find - 1
        GoTo 1
2
        Exit Function
3
        Find = Find + 1
    Wend
    Find = -1
End Function
 
Public Function Sort(List As Variant, Flag As F_Compare, Optional ByVal Min&, Optional ByVal Max& = -1) As Variant
    'Быстрая сортировка
    'Арг: Список // Флаги сравнений // [Нижний индекс] // [Верхний индекс]
    'Возвращаемое значение: Отсортированный список
    If Max < 0 Then Max = UBound(List)
 
    If TypeName(List) = "String()" Then
        j = List
        Sort_Str j, Flag, Min, Max
        Sort = j
    Else
        Sort = List
        Sort_Var Sort, Flag, Min, Max
    End If
End Function
 
Private Sub Sort_Str(List() As String, Flag As F_Compare, Min&, Max&)
    'Рекурсивный алгоритм быстрой сортировки
    Dim i1&, i2&
    If Max - Min < 1 Then Exit Sub 'Пройден весь список
    n = Fix((Max - Min + 1) / 5 + Min) 'Выбрать разделяющее значение.
    s = List(n)
    List(n) = List(Min) 'Переместить его вперед.
    i1 = Min: i2 = Max
 
    Do
 
        While Compare(List(i2), s, Flag) >= 0 'Просмотр сверху вниз от i2 до значения >= s
            i2 = i2 - 1
            If i2 <= i1 Then List(i1) = s: Exit Do
        Wend
        List(i1) = List(i2) 'Поменять местами значения i1 и i2.
        '-----------
        i1 = i1 + 1 'Просмотр снизу вверх от i1 до значения < s.
 
        While Compare(List(i1), s, Flag) < 0
            i1 = i1 + 1
            If i1 >= i2 Then i1 = i2: List(i2) = s: Exit Do
        Wend
        List(i2) = List(i1) 'Поменять местами значения i1 и i2.
    Loop
    '---------------------------------Сортировать два подсписка.
    On Error GoTo 1
 
    While List(i1) = List(i1 - 1) 'Сокращение диапазона поиска для Max
        i1 = i1 - 1
    Wend
    Sort_Str List, Flag, Min, i1
1
    On Error GoTo 2
 
    While List(i1) = List(i1 + 1) 'Сокращение диапазона поиска для Min
        i1 = i1 + 1
    Wend
    Sort_Str List, Flag, i1 + 1, Max
2
End Sub
 
Private Sub Sort_Var(List As Variant, Flag As F_Compare, Min&, Max&)
    'Рекурсивный алгоритм быстрой сортировки
    Dim i1&, i2&
    Static n&, v As Variant
    If Max - Min < 1 Then Exit Sub 'Пройден весь список
    n = Fix((Max - Min + 1) / 5 + Min) 'Выбрать разделяющее значение.
    v = List(n)
    List(n) = List(Min) 'Переместить его вперед.
    i1 = Min: i2 = Max
 
    Do
 
        While Compare(List(i2), v, Flag) >= 0 'Просмотр сверху вниз от i2 до значения >= v
            i2 = i2 - 1
            If i2 <= i1 Then List(i1) = v: Exit Do
        Wend
        List(i1) = List(i2) 'Поменять местами значения i1 и i2.
        '-----------
        i1 = i1 + 1 'Просмотр снизу вверх от i1 до значения < v.
 
        While Compare(List(i1), v, Flag) < 0
            i1 = i1 + 1
            If i1 >= i2 Then i1 = i2: List(i2) = v: Exit Do
        Wend
        List(i2) = List(i1) 'Поменять местами значения i1 и i2.
    Loop
    '---------------------------------Сортировать два подсписка.
    On Error GoTo 1
 
    While List(i1) = List(i1 - 1) 'Сокращение диапазона поиска для Max
        i1 = i1 - 1
    Wend
    Sort_Var List, Flag, Min, i1
1
    On Error GoTo 2
 
    While List(i1) = List(i1 + 1) 'Сокращение диапазона поиска для Min
        i1 = i1 + 1
    Wend
    Sort_Var List, Flag, i1 + 1, Max
2
End Sub
 
Public Function Compare&(Elm1 As Variant, Elm2 As Variant, ByVal Flag As F_Compare)
    'Улучшенная функция сравнения
    If Elm1 = Elm2 Then Exit Function
    On Flag GoTo 1, 2, 3, 2, 5, 2, 7, 2, 9, 2, 11, 2, 13, 2, 15
    Compare = (CDbl(Elm1) < CDbl(Elm2)) * 2 + 1
    Exit Function
2
    Compare = (CDbl(Elm2) < CDbl(Elm1)) * 2 + 1
    Exit Function
1
    Compare = StrComp(Elm1, Elm2, vbBinaryCompare)
    Exit Function
3
    Compare = StrComp(Elm2, Elm1, vbBinaryCompare)
    Exit Function
5
    Compare = StrComp(Elm1, Elm2, vbTextCompare)
    Exit Function
7
    Compare = StrComp(Elm2, Elm1, vbTextCompare)
    Exit Function
9
    Compare = Sgn(LenB(Elm1) - LenB(Elm2))
    If Compare = 0 Then Compare = StrComp(Elm1, Elm2, vbBinaryCompare)
    Exit Function
11
    Compare = Sgn(LenB(Elm2) - LenB(Elm1))
    If Compare = 0 Then Compare = StrComp(Elm2, Elm1, vbBinaryCompare)
    Exit Function
13
    Compare = Sgn(LenB(Elm1) - LenB(Elm2))
    If Compare = 0 Then Compare = StrComp(Elm1, Elm2, vbTextCompare)
    Exit Function
15
    Compare = Sgn(LenB(Elm2) - LenB(Elm1))
    If Compare = 0 Then Compare = StrComp(Elm2, Elm1, vbTextCompare)
    Exit Function
End Function
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 18:56
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
есть свойство Sorted
зачем?!
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 19:06
Цитата Сообщение от VIsuaL_DG Посмотреть сообщение
1- "Первый блаблаблаб"
2- "Второй -плаплаплапла"
3- "Третий-флафлафлафла"
Цитата Сообщение от VIsuaL_DG Посмотреть сообщение
"Первый" то выделялась вся строка с этим словом?
Затем что он моментально может найти однокоренное слово в списке скрытого TextBox
или массива и выделит и использует как ему надо
или если воспользуется алгоритмами поиска
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 19:10
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
что он моментально может найти
вот тут подробнее, пжл.
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 19:14
При вводе слова например "Первый" (после окончания ввода)

1 включаем поиск по упорядоченному списку не важно 3 там элемента или 333 ...
2 находим это слово или слово начинающиеся с этих символов за 0.000001 секунд
3 выделяем найденное слово, на указанном контроле
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 19:22
включаем поиск по упорядоченному списку
включаем поиск по неупорядоченному списку
в чем выигрываем в скорости конретно

Добавлено через 3 минуты
для примера в данной задаче такой список
упорядоченный
123
123
132
неупорядоченный
123
132
123
надо найти 123

на пальцах объясните где и почему быстрее
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 19:24
вы знаете что базовый набор англо русского словаря составляет более 5 000 слов
а в его намерияниях сделать чтото вроде переводчика
или не важно что и в каких количествах он будет хранить, пусть это будет наименования тракторных запчастей ...
и стоит ли с таким подходом, вникать в метод полного перебора ? как это вы пытаетесь донести
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 19:37
отвечаю- не стоит
кроме того можно попробовать вбить в предложенный код 10000 слов (в гсч)
ответьте и Вы на заданный вопрос

Добавлено через 5 минут
меня действительно интересует этот вопрос
конкретно: в программе переводчике на запрос 123
может оказаться несколько значений и не объязятельно с полным совпадением
т.е. на 123 есть 123 () , 12345, 123а
вот как быстро найти эти соответствия (не совпадения полные)
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 19:57
Вы отчасти сами на него ответили, именно в больших списках такое бывает
когда наряду с искомой частью слова вас может оказаться

вас
вася
василий
василиса
... и тд

тогда из такого списка просто выбирается наиболее близкое по совпадению и количеству знаков
но замечу обычно такой эфект возникает если это очень большой список

в небольших списках это скорее исключение

Добавлено через 8 минут
кстате в словаре числовые выражения как 123... не используются

во всяком случае целесообразнее и разумней в больших списках
начинать с алфавитных символов (вероятность 1:32 для русских 1:26 для англ, 1:10 для цифр)
то есть и списки сотрудников (фирмы) по этой-же причине хранят начиная с фамилий а не с имени
тоесть от более уникального сочетания к менее уникальному
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 20:02
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
тогда из такого списка просто выбирается
меня интересует как быстро выбрать(не как у меня) , как за счет отсортированного списка выиграть время

да и потом еще пример
слово косить
предлагаю строки в словаре (для выборки)
косить (косой)
косить (глазами)

вот не совсем большой словарик и вот такая вот ситуация

(я бы решал эту задачу при больших объемах и для конкретной работы в аксесе
окошко (вба) с элементарным запросом на выборку)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2014, 20:02
Помогаю со студенческими работами здесь

Выделение всей строки в таблице
Реализовал функционал, чтобы при поиске искал соот. строку, но выделять могу только один столбец, а не все столбцы в этой строке. ...

Выделение всей строки по условию
Доброго времени суток. Может кто-нибудь написать макрос для заливки целой строки по условию? Имеем таблицу, к примеру из 40 тысяч...

Выделение всей строки узла TreeView
Доброго времени суток, уважаемые форумчане. :senor: Я понимаю, что вопрос наверное не в тему и не имеет смысла. Но! Помогите пожалуйста...

Реализовать выделение всей строки MSFlexGrid
Здравствуйте! Может кто нибудь подскажет как в MSFlexGrid сделать так, что бы строка выделялась полностью, а не оставалась белой первая...

Выделение всей строки синим цветом в StringGrid
Здравствуйте. Как сделать выделение всей строки синим цветом в StringGrid Есть свойство SelectedColor которое видимо за выделение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru