このコードを使用して、ファイル sQue.txt から読み取る GroupBox を作成し、ファイル sObj.txt から読み取る CheckedListBox を作成しています。フォームが読み込まれると、(sQue.txt からのエントリ数に基づいて) 複数の GB が作成され、各 GB に sObj.txt からのアイテムを含む CLB が組み込まれます。作業コードは次のとおりです。
Imports System.IO
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim NewForm2 As New Form2
NewForm2.Show()
Dim sObj() As String = File.ReadAllLines("C:\temp\sQue.txt")
Dim sQue() As String = File.ReadAllLines("C:\temp\sObj.txt")
For Each s As String In sObj
Me.Controls.Add(MakeNewGB(s, sQue))
Next
End Sub
End Class
Public Module Module1
Friend WithEvents NewGB As System.Windows.Forms.GroupBox
Friend WithEvents NewCLB As System.Windows.Forms.CheckedListBox
Public NextColumn As Integer = 0
Public Function MakeNewGB(lbl As String, clbItems() As String) As GroupBox
NewGB = New System.Windows.Forms.GroupBox()
NewCLB = New System.Windows.Forms.CheckedListBox()
NewGB.SuspendLayout()
'GroupBox1
'
NewGB.Controls.Add(NewCLB)
NewGB.Location = New System.Drawing.Point(NextColumn, 0)
NewGB.Name = lbl
NewGB.Size = New System.Drawing.Size(126, 210)
NewGB.TabIndex = 0
NewGB.TabStop = False
NewGB.Text = lbl
'
'CheckedListBox1
'
NewCLB.FormattingEnabled = True
NewCLB.Location = New System.Drawing.Point(6, 19)
NewCLB.Name = "clb" + lbl
NewCLB.Size = New System.Drawing.Size(103, 184)
NewCLB.TabIndex = 0
NewCLB.Items.AddRange(clbItems)
NextColumn += NewGB.Size.Width + 10
Return NewGB
End Function
End Module
フォームがロードされた後、ユーザーは各 CLB からいくつかの項目を選択します。フォームにボタンがあります。ボタンをクリックすると、各 CLB から選択した CLB アイテムをそれぞれの GB に対してテキスト ファイルに保存したいと考えています。
どうすればそれができますか?