다음을 통해 공유


ConvertEventHandler 대리자

정의

ParseFormatBinding 이벤트를 처리할 메서드를 나타냅니다.

public delegate void ConvertEventHandler(System::Object ^ sender, ConvertEventArgs ^ e);
public delegate void ConvertEventHandler(object sender, ConvertEventArgs e);
public delegate void ConvertEventHandler(object? sender, ConvertEventArgs e);
type ConvertEventHandler = delegate of obj * ConvertEventArgs -> unit
Public Delegate Sub ConvertEventHandler(sender As Object, e As ConvertEventArgs)

매개 변수

sender
Object

이벤트 소스입니다.

e
ConvertEventArgs

이벤트 데이터를 포함하는 ConvertEventArgs입니다.

예제

다음 코드를

만드는 예제는 Binding, 추가 ConvertEventHandler 둘 다에 대리자를 ParseFormat 이벤트 추가 BindingBindingsCollectionTextBox 를 통해 제어할는 DataBindings 속성. DecimalToCurrency 이벤트 대리자를 추가 합니다 Format 이벤트에 바인딩된 값의 서식을 지정 (를 Decimal 형식) 통화를 사용 하 여를 ToString 메서드. CurrencyToDecimal 이벤트 대리자를 추가 합니다 Parse 이벤트를 컨트롤에 의해 표시 되는 값을 변환 다시는 Decimal 형식.

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.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 Sub DecimalToCurrency(sender As Object, cevent As ConvertEventArgs)
    ' The method converts only to string type. Test this using the DesiredType.
    If cevent.DesiredType IsNot 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 cevent.DesiredType IsNot 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

설명

ConvertEventHandler 대리자를 만들 때, 이벤트를 처리할 메서드를 식별합니다. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다. 이벤트 처리기 대리자에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.

확장 메서드

GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.

적용 대상