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

Узнай цену своей работы

Формулировка задачи:

На форме текстбокс 1,тексбокс2,тексбокс3 и чекбокс "Несколько файлов?". а также кнопка "выполнить" по умолчанию visible=False. Мне нужно следующее: Если чекбокс выбран, то проверить: заполнены ли текстбокс1 и текстбокс2? Если заполнены оба,то только тогда показать кнопку "выполнить" (button1). Если чекбокс не выбран,то проверить заполнены ли текстбокс1 и текстбокс3? Если заполнены оба,то только тогда показать кнопку "выполнить". мой код ниже работает неправильно, и показывает кнопку если заполнен хотя-бы 1 текстбокс

Решение задачи: «Видимость кнопки, если выбран CheckBox и заполнены определенные TextBox»

textual
Листинг программы
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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы