Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Bug VB или bug в коде? / 7 сообщений из 7, страница 1 из 1
08.11.2004, 10:59:36
    #32772242
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
Что я делаю не правильно?
На форму сажаю два фрейма. В каждый из них добавляю массив из двух OptionButton (Form2) контролов: OptionButton1(0), OptionButton1(1) - в первый фрейм и OptionButton2(0), OptionButton2(1) - во второй. Добавляю на форму кнопку. Далее код обработки событий клика на OptionButton в каждой группе и программное выделение значений в каждой группе - на кнопке:

Код: 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.
Private Sub OptionButton1_Click(Index As Integer)
    Dim i As Byte
    
    For i =  0  To OptionButton1.Count -  1 
        If i = Index Then
            OptionButton1(i).Value = vbChecked
        Else
            OptionButton1(i).Value = vbUnchecked
        End If
            
    Next

End Sub

Private Sub OptionButton2_Click(Index As Integer)
    Dim i As Byte
    
    For i =  0  To OptionButton2.Count -  1 
        If i = Index Then
            OptionButton2(i).Value = vbChecked
        Else
            OptionButton2(i).Value = vbUnchecked
        End If
            
    Next

End Sub

Private Sub Command1_Click()
    Me.OptionButton1( 0 ).Value = vbChecked
    
    Me.OptionButton2( 1 ).Value = vbChecked

End Sub

После нажатия на кнопку ожидаю увидеть в первой группе выделенным первый
OptionButton, а во второй группе - второй. Но вижу только выделенный второй OptionButton во второй группе. В первой оба OptionButton не выделены. В дебаггере на кнопке вижу как первый OptionButton в первой группе выделяется, но затем выделение исчезает как только перехожу к обработке второй команды.
Что это? Ваг бейсика или я что-то делаю неправильно?
...
Рейтинг: 0 / 0
08.11.2004, 11:51:01
    #32772277
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
Rivkin Dmitry
После нажатия на кнопку ожидаю увидеть в первой группе выделенным первый
OptionButton, а во второй группе - второй. Но вижу только выделенный второй OptionButton во второй группе. В первой оба OptionButton не выделены. В дебаггере на кнопке вижу как первый OptionButton в первой группе выделяется, но затем выделение исчезает как только перехожу к обработке второй команды.
Что это? Ваг бейсика или я что-то делаю неправильно? Проверил. У меня все отрабатывает нормально. VB6 SP5 Win2000 Prof SP4 ENG
Но код непонятен.
1 Option button-ы лежат на контейнерах, следовательно VB автоматически следит за тем, чтобы только один из Option button-ов был выделенным (кстати значение Value у них типа Boolean)
2 Т.е. код вида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub OptionButton1_Click(Index As Integer)
    Dim i As Byte
    
    For i =  0  To OptionButton1.Count -  1 
        If i = Index Then
            OptionButton1(i).Value = vbChecked
        Else
            OptionButton1(i).Value = vbUnchecked
        End If
            
    Next

End Sub
 
смысла не имеет, т.к. когда вы кликаете на OptionButton1(i).Value его значение и так True, а у всех остальных в том же контейнере False. Попробуйте интереса ради написать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub OptionButton1_Click(Index As Integer)
    Dim i As Byte

    For i =  0  To OptionButton1.Count -  1 
        If i = Index Then
            OptionButton1(i).Value = False
        Else
            OptionButton1(i).Value = True
        End If

    Next

End Sub
будет что-то интересное :)
...
Рейтинг: 0 / 0
08.11.2004, 12:06:36
    #32772288
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
Да, я уже и сам понял, что код обработки - лишний. Этот код и vbChecked, vbUnchecked - остались после применеия обычных Option button. Подумалось без проверки, что должно быть похоже. :) Спасибо за подсказку с True и False

Но я все-же не понял, как сделать две группы Option button -ов, чтобы каждая работала самочтоятельно и не зависила от другой группы. Не работает у меня! Что-то не так!
...
Рейтинг: 0 / 0
08.11.2004, 12:09:22
    #32772292
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
Rivkin DmitryДа, я уже и сам понял, что код обработки - лишний. Этот код и vbChecked, vbUnchecked - остались после применеия обычных Option button. Подумалось без проверки, что должно быть похоже. :) Спасибо за подсказку с True и False

Но я все-же не понял, как сделать две группы Option button -ов, чтобы каждая работала самочтоятельно и не зависила от другой группы. Не работает у меня! Что-то не так! каждую группу положить на свой контейнер. Попробуйте PictureBox.
Что такое "обычный OptionButton" ?
Какие OptionButton-ы вы используете ?
Какой VisualBasic вы используете ?
...
Рейтинг: 0 / 0
08.11.2004, 12:21:49
    #32772302
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
VB6 (SP6) Windows XP (Profesional) SP2
Обычным OptionButton я назвал контрол байсика из тулбара, появляющийся при создании нового проекта без подключения какких нибудь ActiveX. А вопрос у меня по OptionButton из Microsoft Forms 2.0 Object Library
Группы конечно положены каждая в свой конткйнер (фрейм)
...
Рейтинг: 0 / 0
08.11.2004, 12:32:50
    #32772317
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
Rivkin DmitryVB6 (SP6) Windows XP (Profesional) SP2
Обычным OptionButton я назвал контрол байсика из тулбара, появляющийся при создании нового проекта без подключения какких нибудь ActiveX. А вопрос у меня по OptionButton из Microsoft Forms 2.0 Object Library
Группы конечно положены каждая в свой конткйнер (фрейм) Теперь ясно.
Укажите OptionButton-ам, принадлежащим одной группе одинаковый GroupName. В отдельный контейнер их можно не класть.

Кстати и для "обычных" OptionButton-ов тот код в обработчиках Click был не нужен
...
Рейтинг: 0 / 0
08.11.2004, 13:12:53
    #32772365
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug VB или bug в коде?
Вообще-то этот код мне нужен, так как там есть еще обработка!
А за GroupName - огромное спасибо! Я почему-то не обратил на это свойство внимания и не нашел нигде в хелпе. :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Bug VB или bug в коде? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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