ComboBox - глюк списка (новый) :)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

ComboBox - глюк списка (новый) :)

Сообщение Space » 09.04.2009 (Чт) 21:46

Ну тут я уже не виноват! Какая логика? В зависимости от значения в cbx1 для cbx2 читается список из файла (заменено простым AddItem в cbx2_GotFocus). Описание глюка в прожке.
Вложения
BagComboList.zip
(1.21 Кб) Скачиваний: 40
BugComboList.jpg
скриншот
BugComboList.jpg (13.95 Кб) Просмотров: 1036

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 09.04.2009 (Чт) 22:46

интересно то, что список cbx2 показывается ещё до cbx1_LostFocus(!), т.к. закрытие его в cbx1_LostFocus проходит успешно (ComboListVisible cbx2, False). Это затрудняет коррекцию глюка. Всякие Refresh (вообще корявый метод) не помогают (и перебор контролов, фреймов с Refresh - не выход), да и открытие списка неверного размера уже само по себе глюк! С попытками коррекции глюка:
Вложения
BugComboList.zip
(1.73 Кб) Скачиваний: 39

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ComboBox - глюк списка (новый) :)

Сообщение Хакер » 09.04.2009 (Чт) 23:10

Ну тут я уже не виноват! Какая логика?

Да всё та же логика-то. Нефиг менять контент комбобокса в то время, когда он показан.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: ComboBox - глюк списка (новый) :)

Сообщение jangle » 09.04.2009 (Чт) 23:34

Действительно комбоманьяк! :)

Cдвинь текстбокс ниже зоны выпадающего списка cbx2 и добать ME.refresh

Код: Выделить всё
Private Sub cbx2_GotFocus()
Dim i As Long
Debug.Print "cbx2_GotFocus"
    If cbx1.Text = "1" Then
     cbx2.Clear
     cbx2.AddItem "a"
     Me.Refresh
    Else
     cbx2.Clear
     cbx2.AddItem "aa"
     cbx2.AddItem "bb"
    End If
End Sub

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 09.04.2009 (Чт) 23:54

Хакер, а где его менять.
Jangle, это не выход. Если для каждого комбика отводить на форме столько места, то представляешь, как всё это будет выглядеть? Лучше уж на его место положить TextBox+CommandButton+ListBox.
Последний раз редактировалось Space 10.04.2009 (Пт) 0:09, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ComboBox - глюк списка (новый) :)

Сообщение Хакер » 09.04.2009 (Чт) 23:56

Хакер, а где его менять. Мда, очень остроумно.

При смене выбора в cbx1? Нужели так туго с «взять и подумать»?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 10.04.2009 (Пт) 0:00

при смене выбора в cbx1 накладнее, чем в GotFocus. Это надо менять при каждом нажатии клавиш. Обидно ведь :(

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ComboBox - глюк списка (новый) :)

Сообщение Хакер » 10.04.2009 (Пт) 0:08

Ты заблуждаешься. Сильно. Постоянно. Насчёт многих вещей.

К тому же, причём здесь нажатия клавишь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 10.04.2009 (Пт) 0:09

при вводе в Text

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ComboBox - глюк списка (новый) :)

Сообщение Хакер » 10.04.2009 (Пт) 0:18

Ты же говорил, у тебя звук проигрывается при работе с ComboBox!?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 10.04.2009 (Пт) 0:22

нет, ты чё. У мя связанные списки Страна-Область-Город-Улица. Если происходит ввод в Стране, то при каждом Change будут читаться списки из файлов Область-Город-Улица. Хотя я тут вижу одно небольшое преимущество, возможно, я использую этот вариант, хоть он и более тормозной...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ComboBox - глюк списка (новый) :)

Сообщение Хакер » 10.04.2009 (Пт) 0:28

Ну ты же писал, что будет воспроизводится звук «Ta-da!». Писал?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 10.04.2009 (Пт) 0:30

нет, где это ты взял???
Последний раз редактировалось Space 10.04.2009 (Пт) 13:05, всего редактировалось 3 раз(а).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ComboBox - глюк списка (новый) :)

Сообщение Хакер » 10.04.2009 (Пт) 0:39

А где ты взял, что менять контент я тебе советую «при вводе в Text»? Там же и я.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: ComboBox - глюк списка (новый) :)

Сообщение alibek » 10.04.2009 (Пт) 7:45

Space, тебя уже предупреждали насчет персонального запрета писать о глюках комбобокса.
Этот момент все ближе и ближе.
Lasciate ogni speranza, voi ch'entrate.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: ComboBox - глюк списка (новый) :)

Сообщение jangle » 10.04.2009 (Пт) 9:58

Space писал(а):Jangle, это не выход. Если для каждого комбика отводить на форме столько места, то представляешь, как всё это будет выглядеть? Лучше уж на его место положить TextBox+CommandButton+ListBox.


Ну если хочется извратиться, перерисовывай TextBox. Нафига в твоем коде это?

Код: Выделить всё
    'cbx2.Clear 'не помогает
    'cbx2.Refresh 'не помогает
    'ComboListVisible cbx2, True 'не помогает
    'ComboListVisible cbx2, False 'не помогает


Ты разве Combo списком перекрываешь? Я уже писал же об этом. Отрисовывай тот контрол, который был перекрыт.
Для этого используй функцию UpdateWindow, которая требует немедленной перерисовки клиентской области в обход общей очереди сообщений.
Или, что намного проще, просто добавь три строчки, результат будет тот же.

Код: Выделить всё
Private Sub cbx2_GotFocus()
Dim i As Long
Debug.Print "cbx2_GotFocus"
    If cbx1.Text = "1" Then
     cbx2.Clear
     cbx2.AddItem "a"

     Me.Text1.Visible = False
     Me.Refresh
     Me.Text1.Visible = True

    Else
     cbx2.Clear
     cbx2.AddItem "aa"
     cbx2.AddItem "bb"
    End If
End Sub

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: ComboBox - глюк списка (новый) :)

Сообщение Space » 10.04.2009 (Пт) 13:04

Alibek, какой момент? Не надо мя пугать!


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

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

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 49

    TopList  
cron