ConvertEventHandler デリゲート
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)


ConvertEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、そのイベントが発生すると常にイベント ハンドラが呼び出されます。イベント ハンドラ デリゲートの詳細については、「イベントとデリゲート」を参照してください。

Binding を作成し、ConvertEventHandler デリゲートを Parse イベントと Format イベントの両方に追加するコード例を次に示します。またこのコード例では、作成した Binding を、DataBindings プロパティを使用して、TextBox コントロールの BindingsCollection に追加します。DecimalToCurrency イベント デリゲートは Format イベントに追加され、ToString メソッドを使用して、バインドされた値 (Decimal 型) を通貨として書式設定します。CurrencyToDecimal イベント デリゲートは Parse イベントに追加され、コントロールによって表示される値を Decimal 型に変換します。
Private Sub DecimalToCurrency(sender As Object, cevent As ConvertEventArgs) ' The method converts only to string type. Test this using the DesiredType. If Not cevent.DesiredType Is GetType(String) Then Return End If ' Use the ToString method to format the value as currency ("c"). cevent.Value = CDec(cevent.Value).ToString("c") End Sub Private Sub CurrencyToDecimal(sender As Object, cevent As ConvertEventArgs) ' The method converts only to decimal type. If Not cevent.DesiredType Is GetType(Decimal) Then Return End If ' Converts the string back to decimal using the static ToDecimal method. cevent.Value = Convert.ToDecimal(cevent.Value.ToString()) End Sub Private Sub BindControl() ' Creates the binding first. The OrderAmount is typed as Decimal. Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount") ' Adds the delegates to the events. AddHandler b.Format, AddressOf DecimalToCurrency AddHandler b.Parse, AddressOf CurrencyToDecimal text1.DataBindings.Add(b) End Sub
private void DecimalToCurrency(object sender, ConvertEventArgs cevent) { // The method converts only to string type. Test this using the DesiredType. if (cevent.DesiredType != typeof(string)) return; // Use the ToString method to format the value as currency ("c"). cevent.Value = ((decimal) cevent.Value).ToString("c"); } private void CurrencyToDecimal(object sender, ConvertEventArgs cevent) { // ' The method converts only to decimal type. if (cevent.DesiredType != typeof(decimal)) return; // Converts the string back to decimal using the static ToDecimal method. cevent.Value = Convert.ToDecimal(cevent.Value.ToString()); } private void BindControl() { // Creates the binding first. The OrderAmount is typed as Decimal. Binding b = new Binding ("Text", ds, "customers.custToOrders.OrderAmount"); // Add the delegates to the events. b.Format += new ConvertEventHandler(DecimalToCurrency); b.Parse += new ConvertEventHandler(CurrencyToDecimal); text1.DataBindings.Add(b); }
private: void DecimalToCurrency( Object^ /*sender*/, ConvertEventArgs^ cevent ) { // The method converts only to string type. Test this using the DesiredType. if ( cevent->DesiredType != String::typeid ) { return; } // Use the ToString method to format the value as currency ("c"). cevent->Value = ( (Decimal^)(cevent->Value) )->ToString( "c" ); } void CurrencyToDecimal( Object^ /*sender*/, ConvertEventArgs^ cevent ) { // ' The method converts only to decimal type. if ( cevent->DesiredType != Decimal::typeid ) { return; } // Converts the string back to decimal using the static ToDecimal method. cevent->Value = Convert::ToDecimal( cevent->Value->ToString() ); } void BindControl() { // Creates the binding first. The OrderAmount is typed as Decimal. Binding^ b = gcnew Binding( "Text",ds,"customers.custToOrders.OrderAmount" ); // Add the delegates to the events. b->Format += gcnew ConvertEventHandler( this, &Form1::DecimalToCurrency ); b->Parse += gcnew ConvertEventHandler( this, &Form1::CurrencyToDecimal ); text1->DataBindings->Add( b ); }
private void DecimalToCurrency(Object sender, ConvertEventArgs cevent) { // The method converts only to string type. // Test this using the DesiredType. if (!(cevent.get_DesiredType().Equals(String.class.ToType()))) { return ; } // Use the ToString method to format the value as currency ("c"). cevent.set_Value(((System.Decimal)cevent.get_Value()).ToString("c")); } //DecimalToCurrency private void CurrencyToDecimal(Object sender, ConvertEventArgs cevent) { // The method converts only to decimal type. if (!(cevent.get_DesiredType().Equals(System.Decimal.class.ToType()))) { return ; } // Converts the string back to decimal // using the static ToDecimal method. cevent.set_Value(Convert.ToDecimal(cevent.get_Value().ToString())); } //CurrencyToDecimal private void BindControl() { // Creates the binding first. The OrderAmount is typed as Decimal. Binding b = new Binding("Text", ds, "customers.custToOrders.OrderAmount"); // Add the delegates to the events. b.add_Format(new ConvertEventHandler(DecimalToCurrency)); b.add_Parse(new ConvertEventHandler(CurrencyToDecimal)); text1.get_DataBindings().Add(b); } //BindControl

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からConvertEventHandler デリゲートを検索する場合は、下記のリンクをクリックしてください。

- ConvertEventHandler デリゲートのページへのリンク