我沒有任何問題使用下面的代碼在我的項目中的按鈕或其他地方添加項目到我的組合框。VB.net(VS 2013)combobox item.add在從外部事件中觸發時失敗?
CBSpnd.Items.Add("B")
然而,似乎如果我把在子同一行由外到我的應用程序的事件(在我的情況下,我捕捉從打開的Excel文檔中的SelectionChange事件)觸發,當這種行運行的代碼只是停止。沒有錯誤,沒有例外,沒有,並且例程的其餘部分不運行。
有沒有人遇到過這種情況,或知道爲什麼會發生這種情況?我將把相關代碼放在下面
Private Event_cellchange As Excel.DocEvents_SelectionChangeEventHandler
Sub AddHandlers()
Event_cellchange = New Excel.DocEvents_SelectionChangeEventHandler(_
AddressOf CellsChange)
WS = ExcelWorkbook.Sheets("Prod Data")
MWS = ExcelWorkbook.Sheets("Machine Layout")
RemoveHandler WS.selectionChange, Event_cellchange
AddHandler WS.selectionChange, Event_cellchange
End Sub
Public Sub CellsChange(ByVal Target As Excel.Range)
ChangeText(LblOrder, WS.Range("E" & Target.Row).Value)
ChangeText(LblOtype, WS.Range("B" & Target.Row).Value)
ChangeText(LblLbs, WS.Range("G" & Target.Row).Value)
ChangeText(LblClr, WS.Range("AU" & Target.Row).Value)
'CBSpnd.Items.Add(WS.Range("AI" & Target.Row).Value)
'CBSpnd.Items.Add(WS.Range("AM" & Target.Row).Value)
'CBSpnd.Items.Add(WS.Range("AQ" & Target.Row).Value)
CBAdd("B") '**** CODE STOPS HERE, NO ERRORS/EXCEPTIONS ****
UDOP.Text = WS.Range("C" & Target.Row).Value
End Sub
Delegate Sub ChangeTextDelegate(ByVal ctrl As Control, ByVal str As String)
Private Sub ChangeText(ByVal ctrl As Control, ByVal str As String)
If ctrl.InvokeRequired Then
ctrl.Invoke(New ChangeTextDelegate(AddressOf ChangeText), New Object() {ctrl, str})
Return
End If
ctrl.Text = str
End Sub
告訴Visual Studio打破「調試>異常」菜單中的所有異常,並選擇「投擲」下的「公共語言運行時異常」下的選項。希望這會導致VS實際向你顯示錯誤。確保在完成這個錯誤時關閉此選項,否則會令您發瘋。我有一種感覺,你的問題可能與線程有關。 –