从文本文件中读取&显示表单加载

时间:2013-05-27 16:55:46

标签: vb.net

我有2个名为sQue.txt的文本文件,每行包含单个单词(每行中的每个单词),sObj.txt每行也包含单个单词(但条目中没有更多条目)文件比在sQue.txt中。。

现在,我有一个空白表格,我想要阅读上述文件和以下列方式显示它们:

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

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

  3. 示例:

    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& amp;标签的标签。 CCC。此外,还有3个CheckedListBox在每个框中都包含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
    

2 个答案:

答案 0 :(得分:1)

如果您使用分组框,则可以使用text属性作为标签,并将checkedlistbox添加到包含所需项目的分组框中。这段代码就是这样做的:

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

答案 1 :(得分: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
相关问题