2013-10-16 36 views
0

我有我的对话框下面的代码:控制流程Load事件,VB.NET桌面

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

    Dim objProveedores As New AR.CMP.ControlCatalogo() 
    Dim dvClases, dvEstados As DataView 

    dvClases = objProveedores.ListarClasesProveedor() 

    If dvClases IsNot Nothing AndAlso dvClases.Count > 0 Then 

     For i As Integer = 0 To dvClases.Count 
      cmbClase.Items.Add(dvClases(i)("Class")) 
     Next 

    End If 
    'reach until here the debugger 
    dvEstados = objProveedores.ListarEstadosProveedor() 

    If dvEstados IsNot Nothing AndAlso dvEstados.Count > 0 Then 

     For j As Integer = 0 To dvEstados.Count 
      cmbEstado.Items.Add(dvEstados(j)("Name")) 
     Next 

    End If 

End Sub 

,但只能达到第一个代码块会被忽略,除非首先得到评价第二,为什么这个行为?

+2

可能是因为它抛出一个异常,看在输出窗口。当您在64位操作系统上并且您的程序被迫以32位模式运行时,调试器不会停止。对此有几个修正,但一个是明显的选择,这个代码不属于Load事件。把它放在构造函数中。你现在会看到异常。 –

+0

aLRight!,谢谢我把它放在initializationComponent之后,它可以工作,但是这是一个我不能放弃的评论 –

回答

0

只要把它initializationComponent电话后,也将努力