다음을 통해 공유


ControlEventHandler 대리자

Control 클래스의 ControlAddedControlRemoved 이벤트를 처리할 메서드를 나타냅니다.

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

구문

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

매개 변수

  • sender
    이벤트 소스입니다.

설명

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

예제

다음 코드 예제에서는 Binding을 만들고, ConvertEventHandler 대리자를 ParseFormat 이벤트에 모두 추가합니다. 또한 DataBindings 속성을 통해 BindingTextBox 컨트롤의 BindingsCollection에 추가합니다. Format 이벤트에 추가된 DecimalToCurrencyString 이벤트 위임은 ToString 메서드를 사용하여 바인드된 값(Decimal 형식)을 통화로서 서식 지정합니다. Parse 이벤트에 추가된 CurrencyStringToDecimal 이벤트 위임은 컨트롤에 의해 표시된 값을 다시 Decimal 형식으로 변환합니다.

Private Sub BindControl()
    ' Create the binding first. The OrderAmount is typed as Decimal.
    Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount")
    ' Add the delegates to the events.
    AddHandler b.Format, AddressOf DecimalToCurrencyString
    AddHandler b.Parse, AddressOf CurrencyStringToDecimal
    text1.DataBindings.Add(b)
End Sub 'BindControl


Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs)
    ' Check for the appropriate 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 'DecimalToCurrencyString


Private Sub CurrencyStringToDecimal(sender As Object, cevent As ConvertEventArgs)
    ' Check for the appropriate DesiredType. 
    If Not cevent.DesiredType Is GetType(Decimal) Then
        Return
    End If 
    ' Convert the string back to decimal using the static Parse method.
  cevent.Value = Decimal.Parse(cevent.Value.ToString, _
  NumberStyles.Currency, nothing)

End Sub 'CurrencyStringToDecimal
private void BindControl()
{
   // Create 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(DecimalToCurrencyString);
   b.Parse += new ConvertEventHandler(CurrencyStringToDecimal);
   text1.DataBindings.Add(b);
}

private void DecimalToCurrencyString(object sender, ConvertEventArgs cevent)
{
   // Check for the appropriate 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 CurrencyStringToDecimal(object sender, ConvertEventArgs cevent)
{
   // Check for the appropriate DesiredType. 
   if(cevent.DesiredType != typeof(decimal)) return;

   // Convert the string back to decimal using the static Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString(),
   NumberStyles.Currency, null);
}
private:
   void BindControl()
   {
      // Create 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::DecimalToCurrencyString );
      b->Parse += gcnew ConvertEventHandler( this, &Form1::CurrencyStringToDecimal );
      text1->DataBindings->Add( b );
   }

   void DecimalToCurrencyString( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // Check for the appropriate 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 CurrencyStringToDecimal( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // Check for the appropriate DesiredType. 
      if ( cevent->DesiredType != Decimal::typeid )
      {
         return;
      }

      // Convert the string back to decimal using the static Parse method.
      cevent->Value = Decimal::Parse( cevent->Value->ToString(),
         NumberStyles::Currency, nullptr );
   }
private void BindControl()
{
    // Create 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(DecimalToCurrencyString));
    b.add_Parse(new ConvertEventHandler(CurrencyStringToDecimal));
    text1.get_DataBindings().Add(b);
} //BindControl

private void DecimalToCurrencyString(Object sender, ConvertEventArgs cevent)
{
    // Check for the appropriate 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"));
} //DecimalToCurrencyString

private void CurrencyStringToDecimal(Object sender, ConvertEventArgs cevent)
{
    // Check for the appropriate DesiredType. 
    if (!(cevent.get_DesiredType().Equals(System.Decimal.class.ToType()))) {
        return;
    }
    // Convert the string back to decimal using the static Parse method.
    cevent.set_Value(Decimal.Parse(cevent.get_Value().ToString(), 
        NumberStyles.Currency, null));
} //CurrencyStringToDecimal

플랫폼

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에서 지원

참고 항목

참조

System.Windows.Forms 네임스페이스
Binding 클래스
ControlEventArgs 클래스
Control.ControlAdded 이벤트
Control.ControlRemoved 이벤트