在表单加载期间跳过子例程

时间:2012-07-26 04:11:30

标签: .net vb.net routines

我这里有一个表单加载子例程,问题是程序执行第一个(即LoadProgrammes()),然后跳过子程序的其余部分。子程序LoadProgrammes()有一些东西可以使“Form Load”的其余部分不被调用。

ListActiveClasses()也是如此。仅正确调用DisplayGroups()并调用下一行代码。

我真的不知道为什么,找到一个谷歌解决方案是非常困难的。提前感谢任何可以提供帮助的人。

Private Sub frmEnroll_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    LoadProgrammes()
    ListActiveClasses()
    DisplayGroups()

End Sub

Private Sub LoadProgrammes()
    Dim strLoadSQL As String
    Dim dsLoad As New DataSet
    Dim daLoad As OleDb.OleDbDataAdapter

    Using con As New OleDbConnection(My.Settings.ConnectionPath)

        strLoadSQL = "SELECT Programme FROM Programmes"
        daLoad = New OleDb.OleDbDataAdapter(strLoadSQL, con)
        daLoad.Fill(dsLoad, "LoadProgrammes")

        'Add items to the combobox
        For i = 0 To dsLoad.Tables("LoadProgrammes").Rows.Count
            cmbProgramme.Items.Add(dsLoad.Tables("LoadProgrammes").Rows(i).Item(0))
        Next

    End Using
End Sub

1 个答案:

答案 0 :(得分:2)

我所看到的是,在某些事件处理程序中(可能就像你的Form.Load处理程序一样),执行过程中抛出的任何异常都会被吞下并被忽略。很可能你在OleDb代码中遇到了一些异常,导致它纾困。

我建议使用Try...Catch block包装所有_Load子例程,然后手动打印例外,或者调用Debugger.Break

您是否尝试过单步执行代码?我建议你在frmEnroll_Load的开头设置一个断点,然后开始逐步推进,直到某些东西爆炸,或者代码才会继续(如果异常被吞下,你就会看到这个。)


相关问题/页面: