Dictionary(Of String, Checkbox)
すべてのチェックボックスをオブジェクトに追加する必要があります。
Dim ADkey As String() =
{"NoChangingWallpaper", "NoHTMlWallpaper"}
'This code can move to where the checkboxes are first created, as long as you can reach the variable from here
Dim checkboxes As New Dictionary(Of String, Checkbox) From
{
{"NoChangingWallpaper", cboNoChangingWallpaper},
{"NoHTMlWallpaper", cboNoHTMLWallpaper}
}
For Each key As String in ADKey.Where(Function(k) checkboxes.ContainsKey(k))
Dim regvalue As Boolean = (My.Computer.Registry.GetValue(
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop", key, Nothing)="1")
Dim box As Checkbox = checkboxes(key)
box.Name = key
box.Checked = regvalue
Next Key
そして、これを見ると、キーの二重の記録を保持することを避けるために、文字列配列を完全に切り取って、次のようにすることがあります。
'This code can move to where the checkboxes are first created, as long as you can reach the variable from here
Dim checkboxes As New Dictionary(Of String, Checkbox) From
{
{"NoChangingWallpaper", cboNoChangingWallpaper},
{"NoHTMlWallpaper", cboNoHTMLWallpaper}
}
For Each key As String in checkboxes.Keys
Dim regvalue As Boolean = (My.Computer.Registry.GetValue(
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop", key, Nothing)="1")
Dim box As Checkbox = checkboxes(key)
box.Name = key
box.Checked = regvalue
Next Key
このバージョンが必要かどうかは、常にすべてのボックスを表示しているかどうか、または特定のボックスのみを更新したい場合があるかどうかによって異なります。