Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
3 / 3 / 3
Регистрация: 18.11.2011
Сообщений: 286

Видимость кнопки, если выбран CheckBox и заполнены определенные TextBox

01.08.2014, 12:00. Показов 3369. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На форме текстбокс 1,тексбокс2,тексбокс3
и чекбокс "Несколько файлов?".
а также кнопка "выполнить" по умолчанию visible=False.

Мне нужно следующее:
Если чекбокс выбран, то проверить:
заполнены ли текстбокс1 и текстбокс2?
Если заполнены оба,то только тогда показать кнопку "выполнить" (button1).

Если чекбокс не выбран,то проверить
заполнены ли текстбокс1 и текстбокс3?
Если заполнены оба,то только тогда показать кнопку "выполнить".

мой код ниже работает неправильно,
и показывает кнопку если заполнен хотя-бы 1 текстбокс

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
        If CheckBox2.Checked Then
            If Me.TextBox1.Text = String.Empty Or Me.TextBox2.Text = String.Empty Then
                Button3.Visible = True
            Else
                Button3.Visible = True
            End If
        End If
 
        If Not CheckBox2.Checked Then
            If Me.TextBox1.Text = String.Empty Or Me.TextBox3.Text = String.Empty Then
                Button3.Visible = True
            Else
                Button3.Visible = True
            End If
        End If
 
 
    End Sub
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2014, 12:00
Ответы с готовыми решениями:

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

Если выбран checkbox поле для ввода активно
Смысл в чём, я не знаю как сделать, если выбран checkbox то поле для ввода активно <input type="checkbox"...

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

9
Почетный модератор
 Аватар для Памирыч
23249 / 9161 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
01.08.2014, 12:42
Вот весь код, не забывайте проверять и сам чекбокс

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Private Sub TextBoxes_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
        Button1.Visible = Check()
    End Sub
 
    Function Check() As Boolean
        If CheckBox1.Checked = True Then
            Return CBool(TextBox1.TextLength * TextBox2.TextLength)
        Else
            Return CBool(TextBox1.TextLength * TextBox3.TextLength)
        End If
        Return False
    End Function
 
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        Button1.Visible = Check()
    End Sub
1
3 / 3 / 3
Регистрация: 18.11.2011
Сообщений: 286
01.08.2014, 16:12  [ТС]
у меня почему-то работает только когда галочка стоит.


Описание элементов
Кликните здесь для просмотра всего текста

Папка
label1
Textbox1
button3

Сохранить в
Label2
textbox2
button4

Архивировать button1
Назад button2

Несколько файлов checkbox1

Файл
label3
Textbox3
button5
------

элементы для "папки" находятся под элементами для "Файл"
+ на них установливается visible=false при загрузке формы
,и появяяются они только при выделении чекбокса






Код
Кликните здесь для просмотра всего текста

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Imports Ionic.Zip
Public Class arh1
    Private Sub arh1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'запуск формы
            Label1.Visible = False
            TextBox1.Visible = False
            Button3.Visible = False
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'кнопка назад
        Me.Close()
        Form2.Show()
    End Sub
    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        'если галочка стоит,то убрать файл и оставить папку
        If CheckBox1.Checked = True Then
            Button1.Visible = Check()
            Label1.Visible = True
            TextBox1.Visible = True
            Button3.Visible = True
            Label3.Visible = False
            TextBox3.Visible = False
            Button5.Visible = False
        Else
            Button1.Visible = Check()
            Label1.Visible = False
            TextBox1.Visible = False
            Button3.Visible = False
            Label3.Visible = True
            TextBox3.Visible = True
            Button5.Visible = True
        End If
    End Sub
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        'если файл
        OpenFileDialog1.ShowDialog()
        TextBox3.Text = OpenFileDialog1.FileName
    End Sub
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        'если папка
        FolderBrowserDialog1.ShowDialog()
        TextBox1.Text = FolderBrowserDialog1.SelectedPath
    End Sub
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        'кнопка сохранить
        SaveFileDialog1.ShowDialog()
        TextBox2.Text = SaveFileDialog1.FileName + ".zip"
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'архивация
        Dim folder = TextBox1.Text
        Dim file = TextBox3.Text
        Dim save = TextBox2.Text
        'архивация папки
        If CheckBox1.Checked Then
            TextBox1.Clear()
            TextBox2.Clear()
            MyZip(folder, save)
            MsgBox("Архивация завершена!")
            TextBox1.Clear()
            TextBox2.Clear()
            'Process.Start(unzip2)
        ElseIf Not CheckBox1.Checked Then
            'архивация файла
            TextBox2.Clear()
            TextBox3.Clear()
            Using zip As ZipFile = New ZipFile()
                zip.AddFile(file, "")
                zip.Save(save) ' 
                MsgBox("Архивация завершена!")
                TextBox2.Clear()
                TextBox3.Clear()
            End Using
        End If
    End Sub
    'упаковка папки в zip
    Public Sub MyZip(ByVal ContentFolder As String, ByVal CreateZip As String)
        Using zip As ZipFile = New ZipFile()
            zip.AddDirectory(ContentFolder)
            zip.Save(CreateZip)
        End Using
    End Sub
    Public Sub MyFile(ByVal ContentFolder As String, ByVal CreateZip As String)
        Using zip As ZipFile = New ZipFile()
            zip.AddDirectory(ContentFolder)
            zip.Save(CreateZip)
        End Using
    End Sub
    Function Check() As Boolean
        If CheckBox1.Checked = True Then
            Return CBool(TextBox1.TextLength * TextBox2.TextLength)
        Else
            Return CBool(TextBox1.TextLength * TextBox3.TextLength)
        End If
        Return False
    End Function
    Private Sub TextBoxes_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
        Button1.Visible = Check()
    End Sub
End Class
Миниатюры
Видимость кнопки, если выбран CheckBox и заполнены определенные TextBox  
0
Почетный модератор
 Аватар для Памирыч
23249 / 9161 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
01.08.2014, 16:15
Я писал пример для трех текстбоксов, как и было в первом посте.
Где на скриншоте третий?
0
3 / 3 / 3
Регистрация: 18.11.2011
Сообщений: 286
01.08.2014, 16:28  [ТС]
Изначально на форме:
Textbox3 (Файл) и Textbox2 (сохранить)
Под Textbox3 "спрятан" Textbox1

Если галочка (на чекбоксе) есть то на Textbox3 (файл)
устанавливается свойство visible=false
а Textbox1 (папка) становится visible=true
и на форме "действующими" остаются Textbox3 (папка) и TextBox1 (сохранить)

Добавлено через 8 минут
кстати на скринах чуть напутал порядок (по диагонали смотрите),хотя по тому где галочка стоит можно понять что чему соответствует
0
Почетный модератор
 Аватар для Памирыч
23249 / 9161 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
01.08.2014, 16:36
Лучший ответ Сообщение было отмечено Nooby93 как решение

Решение

Я запутался окончательно. В первом посте требовалось прятать и показывать кнопку, а теперь
Цитата Сообщение от Nooby93 Посмотреть сообщение
Если галочка (на чекбоксе) есть то на Textbox3 (файл)
устанавливается свойство visible=false
Так что прячем-то?
0
3 / 3 / 3
Регистрация: 18.11.2011
Сообщений: 286
01.08.2014, 16:49  [ТС]
ну я вам объяснил где третий текстбокс,т.к вы видимо не поняли то,о чем я написал в спойлере "Описание элементов",
описал так сказать как все работает и где спрятан третий текстбокс.

На кнопку button1 установлено свойство visible=false
Если установлена галочка на чекбокс, то выполняем проверку:
Заполнены ли текстбокс3 и текстбокс1,если заполнены ОБА то button1.visible=true
Если галочка на чекбокс не установлена, то
выполняем проверку:
Заполнены ли текстбокс3 и текстбокс2,если заполнены ОБА, то button1.visible=true.
----
а проблема у меня в том что button становится видимым только если установлена галочка,с тем кодом который вы скинули ранее
0
Почетный модератор
 Аватар для Памирыч
23249 / 9161 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
01.08.2014, 17:02
Цитата Сообщение от Nooby93 Посмотреть сообщение
Если чекбокс выбран, то проверить:
заполнены ли текстбокс1 и текстбокс2?
Цитата Сообщение от Nooby93 Посмотреть сообщение
Если установлена галочка на чекбокс, то выполняем проверку:
Заполнены ли текстбокс3 и текстбокс1,если заполнены ОБА то button1.visible=true
Если поменялись условия, код естественно работать не будет.

Перепишите функцию Check(), не понимаю, в чем проблема - цифири смените и все дела)
0
3 / 3 / 3
Регистрация: 18.11.2011
Сообщений: 286
01.08.2014, 17:07  [ТС]
проверка выполняется после того как я укажу что архивировать (какой файл или папку) и куда сохранять.

Добавлено через 49 секунд
точно,там же текстбоксы не те.
туплю уже

Добавлено через 3 минуты
Памирыч, спасибо,проблема решена.
0
Почетный модератор
 Аватар для Памирыч
23249 / 9161 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
01.08.2014, 17:08
Отлично.

Не по теме:

Лишь бы при умножении TextLength-ов не вывалилось оверфлоу эксепшен))

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2014, 17:08
Помогаю со студенческими работами здесь

Появление кнопки при условии что оба TextBox заполнены
здравствуйте. как лучше выполнить следующее: два текстбокса,если хотябы один из них пуст кнопка "отправить" не появляется. ...

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

Сделать так, чтобы можно было нажать на кнопку только в случае, если выбран один из Checkbox'ов
Нужна помощь. Есть на форме 2 checkbox и кнопка, нужно чтобы мы могли нажать на кнопку в случае если выбрали один из checkbox

Если CheckBox отмечен, то по нажатию кнопки текст копируется в название формы, иначе в название кнопки
Разработать Windows Forms приложение, содержащее TextBox, CheckBox и кнопку. Если CheckBox отмечен, то по нажатию кнопки текст копируется в...

При смене активного окна всегда включается видимость первой панели.До этого нажатием кнопки видимость была отключена
Такая ситуация. В программе 6 панелей,для навигации между ними использованы кнопки. На каждой кнопке примерно такой код void...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru