0

sQue.txt各行に 1 つの単語 (各行の各単語) を含み、各行に 1 つの単語を含むという名前の 2 つのテキスト ファイル sObj.txtがあります (ただし、エントリの数は sQue.txt よりもこのファイルの方が多くなります)。

ここで、上記の両方のファイルを読み取り、次のような方法で表示する空白のフォームがあります。

  1. sQue.txt ファイルの各エントリは、フォーム内の個別のラベルに表示されます

  2. ファイル sObj.txt のすべてのエントリは CheckedListBox に配置され、この CheckedListBox は、上記のポイント 1. で表示されたラベルごとに表示されます。

例:

sObj.txt contains 3 entries aaa, bbb & ccc (vertically i.e each in new line). sQue.txt contains 5 entries p,q,r,s & t (vertically i.e each in new line).

フォームが読み込まれると、テキスト aaa、bbb、ccc を含む 3 つのラベルが表示されます。また、3 つの CheckedListBoxes がp,q,r,s & t各ボックスに含まれていることがわかります。

それはできますか?私はまだ運がない解決策を見つけようとしています。

助けてください。

今まで私が持っているのは

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim queue As String() = IO.File.ReadAllLines("C:\temp\sQue.txt")
    Dim objects As String() = IO.File.ReadAllLines("C:\temp\sObj.txt")

    For i = 0 To queue.Count - 1
    'create labels here
       For j=0 to objects.Count - 1
       'create CheckedListBoxes
       Next
    Next
End Sub
4

2 に答える 2

1

グループボックスを使用する場合、テキスト プロパティをラベルとして使用し、必要なアイテムを含むグループ ボックスにチェックリスト ボックスを追加できます。このコードはそれを行います:

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("sobj.txt")
        Dim sQue() As String = File.ReadAllLines("sQue.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
于 2013-05-27T19:00:01.077 に答える
0

あなたのコードは次のようになるはずです。しかし、その目的が何であるかはわかりません。

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim queue As String() = IO.File.ReadAllLines("C:\temp\sQue.txt")
    Dim objects As String() = IO.File.ReadAllLines("C:\temp\sObj.txt")

    For i = 0 To queue.Count - 1
    'create labels here
       Dim label as new Label
       label.Text = queue(i)
       Dim chklst as new CheckedListBox

       For j=0 to objects.Count - 1
         'create CheckedListBoxes
         chklst.Items.Add(object(j))
       Next
       Me.Controls.Add(label)
       Me.Controls.Add(chklst)
    Next
End Sub
于 2013-05-27T18:00:16.713 に答える