2013-05-27 2 views
0

sQue.txt은 각 줄마다 한 단어 (각 줄마다 한 단어)를 포함하는 두 개의 텍스트 파일을 가지고 있으며 sObj.txt 또한 각 줄에 한 단어 만 포함하고 있습니다. sQue.txt보다이 파일). 이제텍스트 파일에서 읽기 및 양식로드시 표시

, 나는 내가하는 방식으로이를 표시 & 모두 위의 파일을 읽을 수있는 빈 양식이되도록 :

sQue.txt 파일의 각 항목은 별도의 라벨에 표시됩니다
  1. 양식

  2. 파일 sObj.txt의 모든 항목은 CheckedListBox에 저장됩니다. & 위의 1 번 항목에 표시된 각 레이블에 대해이 CheckedListBox가 나타납니다.

예 : 양식로드, 3 개 레이블 & CCC BBB, 텍스트의 AAA로 볼 수 있습니다

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 개있는 상자는 각 상자에 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 
+0

하나의 XML 파일이 있습니다. 구문 분석하기 쉬운 형식을 만듭니다 (잠재적 인 사용법에 대해 미리 생각해보십시오). 그것은 장기간에 더 잘 작동해야합니다. – Neolisk

+1

가능한 한 http://stackoverflow.com/questions/16776469/dynamic-reading-from-file-displaying-on-form-load BTW의 가능한 중복, 그것은 당신 자신의 질문입니다. – Neolisk

+0

당신의 예가 당신의 질문 시작 부분에서 말하는 것과 정확히 반대되는 것을 알고 있습니까? 당신은 정확히 무엇을 원합니까? –

답변

1

그룹 상자를 사용하는 경우 레이블로 text 속성을 사용할 수 있으며 원하는 항목이있는 그룹 체크 박스를 체크리스트에 추가 할 수 있습니다. 이 코드는 다음을 수행합니다.

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 
+0

당신의 코드는 거의 내가 원하는 것만 큼 문제는 체크리스트 박스 아이템들이 라벨 아이템으로 바뀌고 그 반대도 마찬가지입니다. 사소한 조정이 필요하고 고쳐졌습니다. 고마워요! – slyclam

+0

당신은 매우 환영합니다 – tinstaafl

+0

귀하의 게시물을 계속해서 한 번 더 요청합니다. 버튼을 클릭하면 발생하는 모든 그룹 상자의 NEWGB.Name과 해당 NEWGB의 NEWCLB 항목을 저장해야합니다. – slyclam

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 
+0

코드는 하나의 레이블 (sQue.txt의 첫 번째 항목)과 하나의 checkedlistbox (sObj.txt의 모든 항목)를 만듭니다. 위의 tinstaafl 코드를 사용하여 출력물을 얻었습니다. 그래도 도와 ​​줘서 고마워! – slyclam