当我尝试运行下面的代码我通过代码分析得到错误。调用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