Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 628

Проверка нескольких условий и выполнение под каждое свое действие

17.01.2014, 18:13. Показов 4211. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак, немного поясню: у меня на форме есть 6 Label. Пусть это будет Label1...Label6 = 0. В ходе работы программы, в итоге каждое из этих полей (но только одно!) может принять значение 1. Есть кнопка Button1.
При нажатии на эту кнопку должно произойти действие, но в зависимости от значения конкретного Label1...Label6. То есть, если Label1.Text=1, то Действие1 и т.п. Однако, это еще не все. На форме есть Label7, который также может принимать значение 0 или 1. Когда пользователь нажимает на кнопку при Label7.Text=0 для каждого значения Label1...Label6 = 1 происходят одни действия, но если Label7.Text=1, то это уже иные действия. При этом Label7.Text меняет свое значение при нажатии button1.

Другими словами:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        If Label7.Text = "0" Then
            Label7.Text = "1"
            
' Если Label1.Text = 1 То Действие1
' Если Label2.Text = 1 То Действие2
' ...
' Если Label6.Text = 1 То Действие6
 
        Else
            Label7.Text = "0"
 
' Если Label1.Text = 1 То Действие1''
' Если Label2.Text = 1 То Действие2''
' ...
' Если Label6.Text = 1 То Действие6''            
       
 End If
Добавлено через 5 минут
Собственно проблема в том, как организовать проверку множества условий. Я делал такую логику как в примере, но так не работает. То есть почему-то без Else не получается.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2014, 18:13
Ответы с готовыми решениями:

Выполнение нескольких условий
Подскажите плиз с данным условием. Есть 3 comboBox (медико-возростная группа, подгруппа и упражнение) и 2 textBox (Баллы и Оценка). Условие...

Выполнение сразу нескольких условий
Добрый день! Нужна помощь. Подведение итогов на соревнованиях проводится по следующим параметрам: 1 место - 3 балла; 2 место - 2...

Проверка нескольких условий
Здравствуйте. Есть массив чисел А. Мне нужно проверить все ли они меньше единицы -...

4
Форумчанин.NET
 Аватар для AeroWhite
556 / 427 / 64
Регистрация: 12.02.2013
Сообщений: 834
17.01.2014, 18:40
Ничего не понял, но возможно
VB.NET
1
2
3
4
5
6
If (Условие) And (Условие)
ElseIf (Условие) And (Условие)
ElseIf (Условие) And (Условие)
ElseIf (Условие) And (Условие)
Else
End If
Добавлено через 6 минут
VB.NET
1
2
3
4
5
6
7
8
9
10
11
If Label7.Text = "1" Then
    Label7.Text = "0"
    If Label1.text = "1" Then
    ElseIf Label2.Text = "1" Then
    End IF
Else
    Label7.Text = "1"
    If Label1.text = "1" Then
    ElseIf Label2.Text = "1" Then
    End IF
 End IF
0
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
17.01.2014, 19:33
Моджет быть,
VB.NET
1
2
3
4
5
6
Select Case [объект]
Case Is [условие]Case Is [условие]End Select
?
0
5 / 5 / 1
Регистрация: 03.04.2013
Сообщений: 46
17.01.2014, 20:54
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Select Case Label7.Text
            Case "1"
                If CInt(Label1.text) = 1 Then
                    'оператор для этого условия
                ElseIf CInt(Label2.text) = 1 Then
                    'оператор для этого условия
                    '.......
                End If
            Case "0"
                If CInt(Label1.text) = 1 Then
                    'оператор для этого условия
                ElseIf CInt(Label2.text) = 1 Then
                    'оператор для этого условия
                    '.......
                End If
        End Select
У меня бы так выглядило примерно.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
18.01.2014, 10:18
Нужно обрабатывать сами данные, а не их визуальное представление
Цитата Сообщение от uzlprog Посмотреть сообщение
В ходе работы программы, в итоге каждое из этих полей (но только одно!) может принять значение 1.
Раз это значение откуда-то берётся, то там же его нужно брать и для дальнейшей обработки.
Проще всего использовать массив, в котором соответствующий элемент устанавливать в 1, а остальные в 0. Затем побитовым сдвигом влево определить какой именно элемент установлен в 1. Проверить полученное значение и выполнить нужные действия. Итого, имеем процедуру:
VB.NET
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
    Private Sub SelectLabelsValue(ByVal LabelValues As UInteger())
        Dim val As Integer
        'Сдвигом влево выявляем ненулевой элемент в массиве
        For Each i As UInteger In LabelValues
            val = CInt(IIf(val = 0, 1, val << 1))
            If i <> 0 Then Exit For
        Next
        'Проверка
        Select Case val
            Case 1
                'Проверка значения Label7 и выполнение нужных действий
            Case 2
                'Проверка значения Label7 и выполнение нужных действий
            Case 4
                'Проверка значения Label7 и выполнение нужных действий
            Case 8
                'Проверка значения Label7 и выполнение нужных действий
            Case 16
                'Проверка значения Label7 и выполнение нужных действий
            Case 32
                'Проверка значения Label7 и выполнение нужных действий
            Case 64
                'Проверка значения Label7 и выполнение нужных действий
            Case Else
                Throw New ArgumentOutOfRangeException()
        End Select
    End Sub
Но что-то мне подсказывает, что можно сделать всё гораздо проще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2014, 10:18
Помогаю со студенческими работами здесь

Проверка нескольких условий
Нужно проверить сразу несколько условий if($a == $b &amp;&amp; $c == $d){ echo &quot;true&quot;; } Нужно в зависимости от того первое условие...

Проверка на выполнение хотя бы одного из трех условий
Здравствуйте. Уже третий день бьюсь над задачей, но думал что справлюсь сам. Я пингую три апишника. Если все три не пингуются то вывести...

Проверка нескольких условий одновременно
Необходимо, что бы в ячейке M18 была формула, в которой при наличии хотя бы одного значения «Да» в выше лежащих ячейках, должно содержаться...

Проверка нескольких условий для ячейки
Помогите, пожалуйста, написать, такие условия. В некоторых ячейках есть обычные цифры, их нужно оставить без изменения. А в других...

Проверка условий, перед оформлением заказа ссылаясь на данные из нескольких таблиц
Здравствуйте, пожалуйста, помогите добить код. Условия то срабатываются, то нет. If IsNull(Me!) Or IsNull(Me!) Or IsNull(Me!!) Or...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru