バージョン

ToErrorValue メソッド

このインスタンスの値を UltraCalcErrorValue に変換します。
シンタックス
'宣言
 
Public Function ToErrorValue() As UltraCalcErrorValue
public UltraCalcErrorValue ToErrorValue()

戻り値の型

このインスタンスの値に相当するエラー コードを含む UltraCalcErrorValue です。
解説

このメソッドは、エラー コードがこのインスタンスのエラー コードに設定される UltraCalcErrorValue を返します。

カルチャ固有の書式設定情報を提供する UltraCalcErrorValue インターフェイス実装。

使用例
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

    Private Sub UltraCalcManager1_ParseValue(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinCalcManager.ParseValueEventArgs) Handles ultraCalcManager1.ParseValue
        ' ParseValue gets fired on all controls that are source of values in formulas.
        If e.Control Is Me.textBox2 Then
            ' Get the text of the textBox2.
            Dim text As String = Me.textBox2.Text

            If 0 = text.Length Then
                ' If the textbox is empty, then you can return an error. By default the 
                ' calc manager considers empty strings to be 0.
                e.Value = New UltraCalcValue(New UltraCalcErrorValue(UltraCalcErrorCode.Num, "Not a Number"))
            Else
                ' Otherwise parse the text to a double and return that as the value. 
                ' The calc manager by default uses InvariantCulture to parse text into
                ' numeric values. Typically you want to use the current culture to parse
                ' text into numeric values. ParseValue event is especially useful for that.
                e.Value = New UltraCalcValue(Double.Parse(text))
            End If

            e.Handled = True
        End If
    End Sub

    Private Sub UltraCalcManager1_FormatValue(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinCalcManager.FormatValueEventArgs) Handles ultraCalcManager1.FormatValue
        ' FormatValue gets fired on all controls that are target of formula evaluations.
        If e.Control Is Me.textBox1 Then
            If e.CalcValue.IsError Then
                ' There was an error in formula evaluation.
                e.Value = e.CalcValue.ToErrorValue().Message
            ElseIf e.CalcValue.IsDBNull Or e.CalcValue.IsNull Then
                ' Result is DBNull or Null.
                e.Value = "(NULL)"
            Else
                Dim doubleVal As Double
                If e.CalcValue.ToDouble(doubleVal) Then
                    ' ToDouble returns true if the value was a double.
                    e.Value = CType(doubleVal, Decimal).ToString("c")
                Else
                    ' Otherwise convert the value to a string using current culture.
                    e.Value = e.CalcValue.ToString(System.Globalization.CultureInfo.CurrentCulture)
                End If
            End If
        End If
    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 );
		}

		private void ultraCalcManager1_ParseValue(object sender, Infragistics.Win.UltraWinCalcManager.ParseValueEventArgs e)
		{
			// ParseValue gets fired on all controls that are source of values in formulas.
			if ( e.Control == this.textBox2 )
			{
				// Get the text of the textBox2.
				string text = this.textBox2.Text;
				
				if ( 0 == text.Length )
				{
					// If the textbox is empty, then you can return an error. By default the 
					// calc manager considers empty strings to be 0.
					e.Value = new UltraCalcValue( new UltraCalcErrorValue( UltraCalcErrorCode.Num, "Not a Number" ) );
				}
				else
				{
					// Otherwise parse the text to a double and return that as the value. 
					// The calc manager by default uses InvariantCulture to parse text into
					// numeric values. Typically you want to use the current culture to parse
					// text into numeric values. ParseValue event is especially useful for that.
					e.Value = new UltraCalcValue( double.Parse( text ) );
				}

				e.Handled = true;
			}
		}

		private void ultraCalcManager1_FormatValue(object sender, Infragistics.Win.UltraWinCalcManager.FormatValueEventArgs e)
		{
			// FormatValue gets fired on all controls that are target of formula evaluations.
			if ( e.Control == this.textBox1 )
			{
				if ( e.CalcValue.IsError )
				{
					// There was an error in formula evaluation.
					e.Value = e.CalcValue.ToErrorValue( ).Message;
				}
				else if ( e.CalcValue.IsDBNull || e.CalcValue.IsNull )
				{
					// Result is DBNull or Null.
					e.Value = "(NULL)";
				}
				else 
				{
					double doubleVal;
					if ( e.CalcValue.ToDouble( out doubleVal ) )
					{
						// ToDouble returns true if the value was a double.
						e.Value  = ((decimal)doubleVal).ToString( "c" );
					}
					else
					{
						// Otherwise convert the value to a string using current culture.
						e.Value = e.CalcValue.ToString( System.Globalization.CultureInfo.CurrentCulture );
					}
				}
			}
		}
参照