Imports Infragistics.Win.UltraWinCalcManager Imports Infragistics.Win.UltraWinCalcManager.FormulaBuilder Imports Infragistics.Win.CalcEngine
WinCalcManager™ FormulaBuilder はランタイムで表示できます。
FomulaBuilder を表示するには以下の手順を実行します。
コーディングを始める前にコード ビハインドに Using/Imports のディレクティブを配置することにより、メンバーの完全修飾名を常に入力する必要がなくなります。
Visual Basic の場合:
Imports Infragistics.Win.UltraWinCalcManager Imports Infragistics.Win.UltraWinCalcManager.FormulaBuilder Imports Infragistics.Win.CalcEngine
C# の場合:
using Infragistics.Win.UltraWinCalcManager; using Infragistics.Win.UltraWinCalcManager.FormulaBuilder; using Infragistics.Win.CalcEngine;
フォームに UltraCalcManager、3 つの UltraTextEditors および UltraButton を配置します。
エディターを txtBox1"、"txtBox2" および "txtSumBox" に名前変更します。そして、各エディターの CalcSettings で PropertyName を Text に設定します。PropertyName を Text に設定しない場合、FormulaBuilderDialog にコントロールが表示されません。
UltraButton の名前を btnShowFormulaBuilderDialog に変更します。ボタンの Text プロパティを Show Formula Builder Dialog に設定します。
Infragistics.Win.UltraWinCalcManager.v20.1.FormulaBuilder への参照を追加します。
コードビハインドで、IFormulaProvider を渡す ShowFormulaBuilderDialog メソッドを作成します。
ShowFormulaBuilderDialog メソッドで、ShowFormulaBuilderDialog に渡された IForumlaProvider 変数を渡す、新しい FormulaBuilderDialog メソッドを宣言します。
FormulaBuilderDialog の宣言後、ShowFormulaBuilderDialog メソッドでダイアログを表示する必要があります。
ダイアログの表示後、ダイアログがキャンセルされるか、また ShowFormulaBuilderDialog メソッドから戻ってくるかを確認する必要があります。ダイアログがキャンセルされない場合は、FormulaBuildDialog の Formula プロパティを取得し、渡された IFormulaProvider の Formula プロパティに割り当てる必要があります。
次のコード例は、上記のコードを示しています。
Visual Basic の場合:
Private Sub UltraButton1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles UltraButton1.Click Me.ShowFormulaBuilderDialog(Me.UltraCalcManager1.GetCalcSettings(Me.UltraTextEditor1)) End Sub Private Sub ShowFormulaBuilderDialog(ByVal formulaProvider As IFormulaProvider) ' 新しい FormulaBuilderDialog を宣言します。 Dim formulaBuilderDialog As New FormulaBuilderDialog(formulaProvider) ' ダイアログを表示します。 Dim dResult As DialogResult = formulaBuilderDialog.ShowDialog(Me) ' ユーザーがキャンセルした場合は何もしません。 If dResult = DialogResult.Cancel Then Return End If ' 数式を適用します。 formulaProvider.Formula = formulaBuilderDialog.Formula formulaBuilderDialog.ShowDialog() End Sub
C# の場合:
private void ultraButton1_Click(object sender, System.EventArgs e) { this.ShowFormulaBuilderDialog(this.ultraCalcManager1.GetCalcSettings(this.ultraTextEditor3)); } private void ShowFormulaBuilderDialog(IFormulaProvider formulaProvider) { // 新しい FormulaBuilderDialog を宣言します。 FormulaBuilderDialog formulaBuilderDialog = new FormulaBuilderDialog(formulaProvider); // ダイアログを表示します。 DialogResult dResult = formulaBuilderDialog.ShowDialog(this); // ユーザーがキャンセルした場合は何もしません。 if (dResult == DialogResult.Cancel) return; // 数式を適用します。 formulaProvider.Formula = formulaBuilderDialog.Formula; formulaBuilderDialog.ShowDialog(); }
デザイナーでボタンをダブルクリックすると、ボタンのクリック イベントが作成されます。イベントで、作成した ShowFormulaBuilderDialog メソッドを呼び出し、UltraCalcManager の GetCalcSettings メソッドを使用して txtSumBox コントロールの CalcSettings を渡し、実行時にコントロールの CalcSettings を取得します。
プロジェクトをビルドして実行します。最初の 2 つのエディターに数字を入力し、[Show Formula Builder Dialog] ボタンを押します。次のようになります。必要な計算を入れ、[OK] をクリックすると結果の値が 3 番目のエディターに表示されます。