Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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
For i% = 0 To Option1.UBound
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 :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам