powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск внутри comboBox
13 сообщений из 13, страница 1 из 1
Поиск внутри comboBox
    #35137955
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможен ли? И не по первому слову, а по любому или совсем абсурдный вопрос возможен ли поиск по свойству caption контролов (На форме SSTab несколько вкладок, на которых контролы, после нажатия на которые, открываются еще контролы, а бывает и третий раз). Можно ли как-то найти эти спрчтанные контролы поиском или каким-то иным способом? В частности я предположил засунуть все в один комбобокс и там уже искать
Константин
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35138523
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все таки не понятно что вы ищете.
Внутри одного комбобокса ищете циклом, перебирая все элементы.
Если среди комбобокса, перебирайте контролы и если контрол комбобокс обращаетесь к Caption и ищите там.
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35140190
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужен поиск, в основном, optionButton. Если возможно, то по Caption было бы хорошо, т.к. их много, а, юзер не всегда может помнить, где какой находится. Да и имя не всегда правильно, т.е. в соответствии с заложенным мной. А, если нельзя, то эти названия загнать в Комбобокс и там уже искать. Константин
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35140733
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не вопрос.
Перебираете в цикле все элементы на форме. Если это optionButton, то добавляете в combobox. Потом делаете SetFocus тому контролу который выбран.
Я точно не помню, но при переборе по-моему не учитываются всяческие фреймы (т.е. элементы являющиеся контейнерами). Для них нужно делать отдельный цикл поиска. Лучше всего сделать рекурсивно.
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35140740
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати если у вас так много optionButton, то скорее всего с вашей формой просто не удобно работать. Подумайте, наверняка можно переделать функциональность, что бы она была более простой. Использовать Tab'ы или последовательно вызывающиеся окна (типа Мастера).
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35151619
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FAndrew
Я не очень хорошо разбираюсь в программировании, но считаю, что optionButton у меня не очень много, Tab'ами пользуюсь. Просто для удобства есть несколько уровней вложения, а поскольку программой будут пользоваться разные люди не все и не всё время будут помнить иерархию, которую я, вместе с их руководителем заложил. Мне предложили повесить список какое оборудование в каком Tab'е и по какой кнопке искать. Я же решил, что удобнее устроить поиск. Теперь я понял, что лучше искать с помощью ComoBox. Но, содержимое Комбо, не должно повторять Caption, а должно отражать наименование, например, оборудования, которое юзер хочет найти. При этом, если название состоит из 2-3 слов, то он может начать поиск с любого. У меня в голове 2 варианта.
1. Загнать в Комбо все возможные варианты наименования (даже, например, профессионализмы) и искать вручную по алфавиту. 2. Если есть такая возможность, поиска внутри комба по контексту. А, поскольку я недостаточно квалифицированный программист, наверно, возможны и другие варианты, кроме ComoBox'а.
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35151631
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FAndrew
Я не очень хорошо разбираюсь в программировании, но считаю, что optionButton у меня не очень много, Tab'ами пользуюсь. Просто для удобства есть несколько уровней вложения, а поскольку программой будут пользоваться разные люди не все и не всё время будут помнить иерархию, которую я, вместе с их руководителем заложил. Мне предложили повесить список какое оборудование в каком Tab'е и по какой кнопке искать. Я же решил, что удобнее устроить поиск. Теперь я понял, что лучше искать с помощью ComoBox. Но, содержимое Комбо, не должно повторять Caption, а должно отражать наименование, например, оборудования, которое юзер хочет найти. При этом, если название состоит из 2-3 слов, то он может начать поиск с любого. У меня в голове 2 варианта.
1. Загнать в Комбо все возможные варианты наименования (даже, например, профессионализмы) и искать вручную по алфавиту. 2. Если есть такая возможность, поиска внутри комба по контексту. А, поскольку я недостаточно квалифицированный программист, наверно, возможны и другие варианты, кроме ComoBox'а.
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35153420
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспользуйтесь свойством Tag. Туда впишите наименование оборудования. Ищите по Tag.
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35153456
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я нашел свой старый код, который я написал года четыре назад. Он Enables/Disables все контроли внутри заданного контейнера, даже если внутри него сидят другие вложенные друг в друга контейнеры. То есть, код осуществляет поиск всех контролей внутри вложенных контейнеров. Вы можете приспособить его только для поиска option buttons (Typename), выуживая их таги и captions. Весь код следует поместить в модуль, а на форме из кнопочки вызывайте EnableDisableContainer. Код поддерживает три типа контейнеров: Frame, PictureBox, SSTab.

Успехов.

Код: plaintext
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.
Option Explicit

Public Const CONTAINER_ENABLE As Boolean = True
Public Const CONTAINER_DISABLE As Boolean = False

Private Const CONTAINER_FRAME As String = "Frame"
Private Const CONTAINER_PIC_BOX As String = "PictureBox"
Private Const CONTAINER_SSTAB As String = "SSTab"

Public Enum eEnableDisableContainer
    edcDisable = CONTAINER_DISABLE
    edcEnable = CONTAINER_ENABLE
End Enum

Public Sub EnableDisableContainer(ByRef pobjContainer As Control, _
                                  Optional ByVal pblnEnable As eEnableDisableContainer = edcEnable, _
                                  Optional ByVal pintSSTabIndx As Integer)
    
    '******************************************************************************

    '   DESCRIPTION: Enables/disables frames, picture boxes, and SStab tabs including
    '                all the controls they contain.
    '
    '                Frame control example to disable it:
    '
    '                   EnableDisableContainer Frame1, edcDisable
    '
    '                SSTab control example to disable controls at its first tab.
    '
    '                   EnableDisableContainer  SSTab1, edcDisable, 0
    '
    '
    '******************************************************************************

    Dim lngErrNum As Long
    Dim strErrSource As String
    Dim strErrDesc As String

    
    On Error GoTo MethodExit
    
    Dim objControl As Control
    Dim objContainer As Control
   
    Set objContainer = pobjContainer
    
    With objContainer
        
        For Each objControl In .Parent.Controls
            Select Case TypeName(pobjContainer)
                  
                Case CONTAINER_FRAME, CONTAINER_PIC_BOX
                    If objControl.Container.Name = .Name Then
                        objControl.Enabled = pblnEnable
                    End If
                    
                    If TypeName(objControl) = CONTAINER_FRAME Or _
                       TypeName(objControl) = CONTAINER_PIC_BOX Then
                        If objControl.Container.Name = .Name Then
                            EnableDisableContainer objControl, pblnEnable
                        End If
                    End If
                    
                    .Enabled = pblnEnable
                    
                Case CONTAINER_SSTAB
                    
                    If .Tab = pintSSTabIndx Then
                        If objControl.Container.Name = .Name Then
                            objControl.Enabled = pblnEnable
                        End If
                        If TypeName(objControl) = CONTAINER_FRAME Or _
                           TypeName(objControl) = CONTAINER_PIC_BOX Then
                            If objControl.Container.Name = .Name Then
                                EnableDisableContainer objControl, pblnEnable
                            End If
                        End If
                        
                        .TabEnabled(pintSSTabIndx) = pblnEnable
                    End If
                    
                Case Else
                    ' Do nothing since other types of controls are not containers
            End Select
        Next
    
    End With
    
MethodExit:
    Set objContainer = Nothing
    
    If Err.Number <>  0  Then
        MsgBox "Error " & CStr(Err.Number) & " in EnableDisableContainer"
    End If
    
End Sub
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35153901
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
Константин
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35155913
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но все-таки, поиск внутри Combo возможен? Константин
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35158563
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, конечно возможен. ListIndex, List.
...
Рейтинг: 0 / 0
Поиск внутри comboBox
    #35159286
kminas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Константин
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск внутри comboBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]