私は20個のチェックボックスを持っています。
これはチェックボックス nº1 のイベントです:
Public Sub C1CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles C1CheckBox1.CheckedChanged
If C1CheckBox1.Checked = True Then My.Settings.box1_selected = "Y" Else My.Settings.box1_selected = "N"
Dim checkedpath1 = C1CheckBox1.Text
End Sub
「ハンドル」にすべてのチェックボックスを追加できることはわかっていますが、チェックボックスの数は未定であり、これが私がやりたいことです:
(疑似コード)
Public Sub ALL_THE_CHECKBOXES_CheckedChanged(sender As Object, e As EventArgs) Handles ALL_THE_CHECKBOXES.CheckedChanged
If ANY_CHECKBOX.Checked = True
My.Settings.boxNUMBER_OF_THIS_SELECTED_CHECKBOX_selected = "Y"
Else
My.Settings.boxNUMBER_OF_THIS_SELECTED_CHECKBOX_selected = "N"
End If
Dim checkedpathNUMBER_OF_THIS_SELECTED_CHECKBOX = C1CheckBoxNUMBER_OF_THIS_SELECTED_CHECKBOX.Text
End Sub
未定の数のチェックボックスを処理するイベントを生成する必要があります。チェックボックスのいずれかが選択されている場合は同じアクションを実行する必要がありますが、その選択されたチェックボックスでのみです。
基本的に、どのチェックボックスが選択され、どのチェックボックスが選択されていないかを設定で覚えておきたい...
更新:
フォームの読み込み時に、次のコードですべてのフォーム チェックボックスを作成します。
Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim List As Integer = 0
Dim posy As Integer = 10
filesystem = CreateObject("Scripting.FileSystemObject")
ThisDir = filesystem.GetFolder(My.Settings.folderpath)
For Each folder In ThisDir.Subfolders
List = List + 1
posy = posy + 20
Dim newCheckBox As New CheckBox()
Panel1.Controls.Add(newCheckBox)
newCheckBox.Name = "checkbox" & List.ToString()
newCheckBox.Text = folder.name
newCheckBox.Location = New Point(10, posy)
Next
End Sub
これにより、「checkbox1」、「checkbox2」、「checkbox3」などの名前のチェックボックスが作成されます...