當我嘗試運行下面的代碼我通過代碼分析得到錯誤。調用System.IDisposable.Dispose對象'cboUltra'之前,所有引用超出範圍
//代碼
For Each UltraGridRow In transactionFieldsGrid.Rows.GetAllNonGroupByRows()
If (Field.FieldTypeId = 1000) Then
Dim cboUltra = New UltraCombo()
cboUltra.DataSource = LoadLookupMulticolumn(Field.LookUpCode)
UltraGridRow.Cells("FieldValue").ValueList = cboUltra
EndIf
Next
//錯誤
失去範圍在方法 'TransactionFieldsController.LoadTransactionFieldsGrid(UltraGridBase,收集(中TransactionField),WorkflowsController,布爾值)' 前CA2000處置對象,對象' cboUltra'不是沿着所有異常路徑設置的。調用System.IDisposable.Dispose對象'cboUltra'之前,所有對它的引用超出範圍。
爲了克服這一點,我重寫了代碼:
For Each UltraGridRow In transactionFieldsGrid.Rows.GetAllNonGroupByRows()
If (Field.FieldTypeId = 1000) Then
Using cboUltra As New UltraCombo()
cboUltra.DataSource = LoadLookupMulticolumn(Field.LookUpCode)
UltraGridRow.Cells("FieldValue").ValueList = cboUltra
End Using
EndIf
Next
但是,當我試圖像上面的代碼。當下線被執行時,我得到一個Object reference error
。
transactionFieldsGrid.ActiveRow = transactionFieldsGrid.Rows.GetRowAtVisibleIndex(0)
注:網格和行包含的值。
任何解決方案?
這很有道理。你可以發佈任何示例代碼,以適當的方式做到這一點? – iamCR
我可以公開宣佈Ultracombo,然後繼續?它會說再次處理對象嗎? – iamCR
你可以幫助解決這個問題嗎? http://stackoverflow.com/questions/16854159/dropdown-should-show-only-the-display-member – iamCR