以下のコードを実行しようとすると、コード分析でエラーが発生します。
//コード
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
//エラー
CA2000 スコープを失う前にオブジェクトを破棄 メソッド 'TransactionFieldsController.LoadTransactionFieldsGrid(UltraGridBase, Collection(Of TransactionField), WorkflowsController, Boolean)' で、オブジェクト 'cboUltra' がすべての例外パスで破棄されません。オブジェクトへのすべての参照が範囲外になる前に、オブジェクト 'cboUltra' で System.IDisposable.Dispose を呼び出します。
これを克服するために、コードを次のように書き直しました。
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)
注: グリッドと行には値が含まれています。
解決策はありますか?