TreatAsTypeは、数式にとって必ずしもネイティブな型ではない値を計算で使用する場合に役立ちます。たとえば、TextBoxコントロールのTextプロパティを使用して数値を入力する場合、デフォルトでは、CalcManagerはインバリアントカルチャを使用してTextBoxの内容をDoubleに変換します。これが常に適切な結果をもたらすとは限りません。この例でTreatAsTypeをDoubleに設定すると、TextBoxのTextは(インバリアントカルチャではなく)現在のカルチャ
TreatAsTypeを設定すると、CalcManagerによってデータが検証され、適切な型に変換できない場合はエラーが表示されます。つまり、TreatAsTypeを設定している場合、コントロールのプロパティ値が適切な型に変換できなければErrorIconが表示されます。TreatAsTypeを設定していない場合は、そのコントロールをソースとして使用しているコントロールだけがエラーを表示できます。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Imports Infragistics.Win.CalcEngine Imports Infragistics.Win.UltraWinCalcManager Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Ensure that the form contains an UltraCalcManager and two textboxes, ' one named textBox1 and the other named textBox2. Dim calcSettings As CalcSettings = New CalcSettings() ' This formula will multiply the value of textBox2 by 2. calcSettings.Formula = "2 * [//textBox2]" calcSettings.PropertyName = "Text" Me.ultraCalcManager1.SetCalcSettings(Me.TextBox1, calcSettings) calcSettings = New CalcSettings() calcSettings.PropertyName = "Text" ' Treat the values of the textBox2 as double. Text property of TextBox is ' a string type and since textBox2 is a source of value to a formula, indicate ' to the calc-manager that the value should be treated as a double rather ' than as a string. calcSettings.TreatAsType = GetType(Double) Me.ultraCalcManager1.SetCalcSettings(Me.TextBox2, calcSettings) 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 Form1_Load(object sender, System.EventArgs e) { // Ensure that the form contains an UltraCalcManager and two textboxes, // one named textBox1 and the other named textBox2. CalcSettings calcSettings = new CalcSettings( ); // This formula will multiply the value of textBox2 by 2. calcSettings.Formula = "2 * [//textBox2]"; calcSettings.PropertyName = "Text"; this.ultraCalcManager1.SetCalcSettings( this.textBox1, calcSettings ); calcSettings = new CalcSettings( ); calcSettings.PropertyName = "Text"; // Treat the values of the textBox2 as double. Text property of TextBox is // a string type and since textBox2 is a source of value to a formula, indicate // to the calc-manager that the value should be treated as a double rather // than as a string. calcSettings.TreatAsType = typeof( double ); this.ultraCalcManager1.SetCalcSettings( this.textBox2, calcSettings ); }