다음을 통해 공유


ConvertEventHandler 대리자

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

네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)

구문

‘선언
Public Delegate Sub ConvertEventHandler ( _
    sender As Object, _
    e As ConvertEventArgs _
)
‘사용 방법
Dim instance As New ConvertEventHandler(AddressOf HandlerMethod)
public delegate void ConvertEventHandler (
    Object sender,
    ConvertEventArgs e
)
public delegate void ConvertEventHandler (
    Object^ sender, 
    ConvertEventArgs^ e
)
/** @delegate */
public delegate void ConvertEventHandler (
    Object sender, 
    ConvertEventArgs e
)
JScript에서는 대리자를 사용할 수 있지만 새로 선언할 수는 없습니다.

매개 변수

  • sender
    이벤트 소스입니다.

설명

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

예제

다음 코드 예제에서는 Binding을 만들고, ConvertEventHandler 대리자를 ParseFormat 이벤트에 추가한 다음 DataBindings 속성을 통해 BindingTextBox 컨트롤의 BindingsCollection에 추가합니다. Format 이벤트에 추가된 DecimalToCurrency 이벤트 위임은 ToString 메서드를 사용하여 바인드된 값(Decimal 형식)을 통화로서 서식 지정합니다. Parse 이벤트에 추가된 CurrencyToDecimal 이벤트 위임은 컨트롤에 의해 표시된 값을 다시 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에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

System.Windows.Forms 네임스페이스