.net 表单加载期间跳过的子例程

.net 表单加载期间跳过的子例程,.net,vb.net,routines,.net,Vb.net,Routines,我这里有一个表单加载子例程,问题是程序执行第一个(即,loadprograms()),然后跳过子例程的其余部分。子程序LoadProgrammes()的某些特性使得“表单加载”的其余部分无法调用 ListActiveClasses()也是如此。仅正确调用DisplayGroups(),并调用下一行代码 我真的不知道为什么,要找到谷歌的解决方案是非常困难的。提前感谢任何能帮忙的人 Private Sub frmEnroll_Load(ByVal sender As System.Object, B

我这里有一个表单加载子例程,问题是程序执行第一个(即,
loadprograms()
),然后跳过子例程的其余部分。子程序
LoadProgrammes()
的某些特性使得“表单加载”的其余部分无法调用

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

我所看到的是,在一些事件处理程序(可能像您的Form.Load处理程序)中,在执行期间抛出的任何异常都将被简单地吞并并忽略。最有可能的情况是,您的OleDb代码中出现了一些异常,导致它退出

我建议将所有的_Load子例程包装成一个,然后手动打印出异常,或者调用

你有没有试过逐行检查代码?我建议您在
frmEnroll\u Load
的开头设置一个断点,然后开始逐步执行,直到出现问题,或者代码继续运行(如果异常被吞没,您会看到这一点)


相关问题/页面:


您试过调试代码吗?是的,您是对的,这是一个错误。然而,我花了一整天的时间试图调试我的代码,但我从来没有想到form.load处理程序会忽略错误,因为这对我来说没有任何意义。我在每一行代码上都设置了断点,但它从来没有运行过这些行,这造成了一系列的混乱。我添加了一些链接,我相信您会觉得有趣。在第三段中也进行了编辑,使其听起来不那么平庸:-)