ReCalc メソッドは、計算ネットワーク内のすべての数式の再計算が同時に実行されることを強制します。
CalcFrequency プロパティが Manual に設定された場合、このメソッドまたは Infragistics.Win.CalcEngine.IUltraCalcManager.EnsureCalculated(Infragistics.Win.CalcEngine.IUltraCalcReference,System.Boolean) メソッドが呼び出されないかぎり、計算は実行されません。
CalcFrequency プロパティが Asynchronous を設定した場合、すべての計算を同期的に完了するためにこのメソッドを呼び出すことができます。この場合、すべての参照に対する単一参照の計算を確実にするため、Infragistics.Win.CalcEngine.IUltraCalcManager.EnsureCalculated(Infragistics.Win.CalcEngine.IUltraCalcReference,System.Boolean) メソッドを使用するとより効果的です。
CalcFrequency プロパティを Synchronous に設定した場合、このメソッドは、計算のソースとして使用されている計算ネットワークのコントロールが PropertyName として使用されているプロパティにイベントを持たない限り、通常必要ありません。この場合、ReCalc よりも Infragistics.Win.CalcEngine.IUltraCalcManager.EnsureCalculated(Infragistics.Win.CalcEngine.IUltraCalcReference,System.Boolean) を使用すると通常より効果的です。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Imports Infragistics.Win.CalcEngine Imports Infragistics.Win.UltraWinCalcManager Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click Me.UltraCalcManager1.NamedReferences.Clear() Me.UltraCalcManager1.NamedReferences.Add("N1", "5") Me.ultraCalcManager1.NamedReferences.Add("N2", "2 * [N1]") Dim result As UltraCalcValue result = Me.UltraCalcManager1.NamedReferences("N2").FormulaResult System.Diagnostics.Debug.WriteLine("Result before calling Recalc: " & result.ToString()) Me.UltraCalcManager1.ReCalc(-1) result = Me.UltraCalcManager1.NamedReferences("N2").FormulaResult System.Diagnostics.Debug.WriteLine("Result after calling Recalc: " & result.ToString()) End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; using Infragistics.Win.CalcEngine; using Infragistics.Win.UltraWinCalcManager; private void button1_Click(object sender, System.EventArgs e) { this.ultraCalcManager1.NamedReferences.Clear( ); this.ultraCalcManager1.NamedReferences.Add( "N1", "5" ); this.ultraCalcManager1.NamedReferences.Add( "N2", "2 * [N1]" ); UltraCalcValue result; result = this.ultraCalcManager1.NamedReferences["N2"].FormulaResult; System.Diagnostics.Debug.WriteLine( "Result before calling Recalc: " + result.ToString( ) ); this.ultraCalcManager1.ReCalc( -1 ); result = this.ultraCalcManager1.NamedReferences["N2"].FormulaResult; System.Diagnostics.Debug.WriteLine( "Result after calling Recalc: " + result.ToString( ) ); }