Страница: 1 |
Страница: 1 |
Вопрос: Как проверить значение нескольких OptionButton?
Добавлено: 24.10.05 15:10
Автор вопроса: earl
Есть кучка этих OptionButton во frame, нужно как-нибудь проверить их значение и в зависимости от value плясать дальше. Я это представляю через select case. Но вот как это сделать ума не приложу. Если кто-нибудь знает решение опишите пожалуйста в виде примера. Я только на примере могу понять. Спасибо.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 24.10.05 15:29
Есть же поиск. Там про массивы контролов все расписано с примерами.
Номер ответа: 2
Автор ответа:
earl
Вопросов: 1
Ответов: 3
Профиль | | #2
Добавлено: 24.10.05 15:39
Поиск юзал. Всё-равно непонятно
Вот есть у меня фрейм. Можно как-нибудь чрез этот фрейм подействовать на OptionButton?
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 24.10.05 15:48
Не понял. У тебя же есть массив Option'ов?
Фрейм тут не при чем. Просто лепишь его на форме, затем добавляешь на него OptionButton, к примеру, со свойством Name равным Option1. Кладешь еще один OptionButton и меняешь его свойство Name тоже на Option1. VB спросит у тебя - создать ли массив контролов - отвечай Да. При необходимости добавляешь сколько нужно Option'ов. Затем либо по клику (Index - номер кликнутого Option'а с нуля), либо проверкой Value.
Номер ответа: 4
Автор ответа:
earl
Вопросов: 1
Ответов: 3
Профиль | | #4
Добавлено: 24.10.05 15:53
Спасибо, попробую создать массив
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 24.10.05 19:58
Debug.Print Option1(i.Value
Next i%
Номер ответа: 6
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #6
Добавлено: 24.10.05 20:17
я делал примерно так:
select case val(cstr(option1.value)+cstr(option2.value)+cstr(option3.value))
case 0
case 1
case 10
case 11
case 100
case 101
case 110
case 111
end select
смысл ясен?
Номер ответа: 7
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #7
Добавлено: 25.10.05 01:20
вот это перл... ))))
Номер ответа: 8
Автор ответа:
earl
Вопросов: 1
Ответов: 3
Профиль | | #8
Добавлено: 25.10.05 06:50
Однако сколько вариантов оказывается! Буду пробовать все.
Я тут почитал, посмотрел и сделал вот так:
Select Case Frame1.Controls(i).Value = True
Case i = 0
Case i = 1
Case i = 2
Case i = 3
End Select
Не безграмотно надеюсь?
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 25.10.05 09:15
earl
На мой взгляд.. твой вариант мягко говоря.. неудачный.. Это сработает лишь в том случае,если ВСЕ элементы управления в твоем Frame имеют св-во Value. А добавишь туда, скажем, Label, и получишь ошибку выполнения.Говоря "массив контролов" LamerOnLine наверняка имел ввиду массив OptionButton, а не массив ВСЕХ контролов твоего Frame.А посему весьма рекомендую воспользоваться вариантами ,предложенными LamerOnLine или HACKER.
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 25.10.05 12:24
Ну ежели так, то можно и вот так
Dim Ctrl As OptionButton
For Each Ctrl In Option1
If Ctrl.Value = True Then
MsgBox Ctrl.Caption
Exit For
End If
Next Ctrl
В принципе, то же что писал HACKER