0

我有 2 个文本文件,命名为 sQue.txt每行中包含单个单词(每行中的每个单词),并且每行中sObj.txt也包含单个单词(但此文件中的条目数比 sQue.txt 中的多)。

现在,我有一个空白表格,我想在其中读取上述两个文件并以如下方式显示它们:

  1. sQue.txt 文件中的每个条目都显示在表单中的单独标签中

  2. 文件 sObj.txt 的所有条目都放在 CheckedListBox 中,对于上面第 1 点中显示的每个标签,都会出现这个 CheckedListBox。

例子:

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).

现在,当表单加载时,会看到 3 个带有文本 aaa、bbb 和 ccc 的标签。每个框中还包含 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

1 回答 1

0

这很容易做到:

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim theAppDirectory = IO.Path.GetDirectoryName(Application.ExecutablePath)

    Dim queue As String() = IO.File.ReadAllLines(theAppDirectory & "\que.txt")
    Dim objects As String() = IO.File.ReadAllLines(theAppDirectory & "\obj.txt")

    Dim top As Integer = 10
    Dim left As Integer = 10
    Dim I As Integer = 0
    Dim J As Integer = 0

    Dim aLabel As Label
    Dim aListCheckBox As CheckedListBox

    Dim aPanel As New Panel
    aPanel.Dock = DockStyle.Fill
    aPanel.Top = 0
    aPanel.Left = 0
    aPanel.AutoScroll = True

    For I = 0 To queue.Count - 1
        aLabel = New Label
        aLabel.Text = queue(I)
        aLabel.Top = top
        aLabel.Left = left

        aListCheckBox = New CheckedListBox
        aListCheckBox.Top = top
        aListCheckBox.Left = left + 100
        For J = 0 To objects.Count - 1
            aListCheckBox.Items.Add(objects(J), False)
            top += 20
        Next J

        'add event handlers here

        aPanel.Controls.Add(aLabel)
        aPanel.Controls.Add(aListCheckBox)
    Next I

    Me.Controls.Add(aPanel)
End Sub

这假定您希望文件与可执行文件位于同一目录中。

也没有添加事件处理程序。您需要确定所需的事件处理程序并在创建控件时添加它们。

于 2013-05-28T20:03:29.660 回答