jeudi 7 septembre 2017

VB.net How do I select specific variables based on checkbox state as I iterate through a For Each

I'm working on a project that requires I iterate through a list of controls on a tabpage to find all of the checkboxes. Then depending on the state of the box (checked or unchecked) select individual variables (filenames) to then perform either a batch rename or delete of files on the filesystem (cb.checked = perform action).

I have managed to create the "for each" for the iteration of the controls (thanks google) but I'm struggling to figure out how to pick the variables. They are all named differently, obviously, as are the checkboxes. Also the checkboxes are statically assigned to the form/tabpage. Here's what I have at the moment.

Public Sub delBut_code(ByRef fname As String)
    If (Sanity = 1) Then
        For Each cb As Control In Form1.Controls
            If TypeOf cb Is CheckBox AndAlso DirectCast(cb, 
                        CheckBox).Checked Then
                If My.Computer.FileSystem.FileExists(fname) Then
                    My.Computer.FileSystem.DeleteFile(fname)
                End If
            End If
        Next
        MessageBox.Show("All Actions Completed Successfully")
    Else
        MessageBox.Show("Please select a File To Delete")
    End If
End Sub

and here is an example of some of the variables:

 Dim castle As String = selPath & "\zm_castle_loadingmovie.txt"
 Dim factory As String = selPath & 
         "\zm_factory_load_factoryloadingmovie.txt"
 Dim island As String = selPath & "\zm_island_loadingmovie.txt"

N.B selpath collects a user entered folder path and can be ignored here

I would really appreciate any pointers.




Aucun commentaire:

Enregistrer un commentaire