2012-03-29 5 views
0

私はどこにでもこの回答を見つけることができません。私はフォームコントロールコレクションの新しいインスタンスを定義しますが、実行時にコレクションは空です。これは、フォーム上の1つのロードボタンでは動作しますが、別のロードボタンでは機能しません。コードはまったく同じですが、一方は機能し、もう一方は機能しません。ここに関連するコードは次のとおりです。実行時の空のControlCollection

Private Sub miFLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miFLoad.Click 
    Dim FilePath As String = "C:\FList\FList.flt" 
    Dim LoadFile As New SaveandLoad.SaveAndLoad 
    Dim FileRead As New Simple3Des("MyPassword") 
    Dim FileString As String = FileRead.ReadFile(FilePath) 


    With LoadFile 
     .WhichList = dgFList 
     .FilePath = FilePath 
     .DecryptedString = FileRead.DecryptData(FileString) 
    End With 

    Call LoadFile.LoadFile() 
End Sub 

このロードボタンはこの1つはある

Private Sub miCLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miCLoad.Click 
    Dim FilePath As String = "C:\FList\CList.clt" 
    Dim LoadFile As New SaveandLoad.SaveAndLoad 
    Dim FileRead As New Simple3Des("MyPassword") 
    Dim FileString As String = FileRead.ReadFile(FilePath) 


    With LoadFile 
     .WhichList = dgCourses 
     .FilePath = FilePath 
     .DecryptedString = FileRead.DecryptData(FileString) 
    End With 

    Call LoadFile.LoadFile() 
End Sub 

をロードしません。

Public Sub LoadFile() 

     Dim dgRow As DataGridViewRow 
     Dim dgCell As DataGridViewTextBoxCell 
     Dim Lines() As String = DecryptedString.Split(vbLf) 
     Dim LinesList As List(Of String) = Lines.ToList 
     LinesList.RemoveAt(Lines.Length - 1) 

     For Each Line As String In LinesList 
      Dim Fields() As String = Line.Split(",") 
      dgRow = New DataGridViewRow 
      For x = 0 To (WhichList.Columns.Count - 1) Step 1 
       dgCell = New DataGridViewTextBoxCell 
       dgCell.Value = Fields(x).ToString 
       dgRow.Cells.Add(dgCell) 
      Next 
      WhichList.Rows.Add(dgRow) 
     Next 

     Dim FormControls As New frmFacultyList.ControlCollection(frmFacultyList) 


     For Each DGV As DataGridView In FormControls 
      If WhichList.Name = DGV.Name Then 
       DGV = WhichList 
       DGV.Refresh() 
      End If 
     Next 

    End Sub 

ここに情報を渡します。 FormControls変数は、FLoadボタンのクリックでは空ですが、CLoadボタンのクリックでは空ではありません。どんな助けもありがとう。

編集:申し訳ありませんが、ここでは関係パブリックプロパティである

Public Property WhichList As New DataGridView 
Public Property FilePath As String 
Public Property DecryptedString As String 
Public Property EncryptedString As String 

答えて

0

私は自分の問題を解決しオンにします。保存機能はファイルに正しく書き込まれていないため、情報を正しく引き出していませんでした。一定。