Пустая коллекция ControlCollection во время выполнения - PullRequest
0 голосов
/ 30 марта 2012

Я не могу найти ответ на это нигде. Я определяю новый экземпляр коллекции элементов управления, но во время выполнения коллекция пуста. Это работает для одной кнопки загрузки в форме, но не для другой. Код точно такой же, но один работает, другой нет. Вот соответствующий код:

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

Эта кнопка загрузки не загружается

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

1 Ответ

0 голосов
/ 02 апреля 2012

Повороты Я решил свою проблему. Функция сохранения неправильно записывала в файл, поэтому неправильно извлекала информацию. Исправлено.

...