ControlEventHandler 대리자
Control 클래스의 ControlAdded 및 ControlRemoved 이벤트를 처리할 메서드를 나타냅니다.
네임스페이스: 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
이벤트 소스입니다.
- e
이벤트 데이터가 들어 있는 ControlEventArgs입니다.
설명
ControlEventArgs 대리자를 만드는 경우 이벤트를 처리할 메서드를 결정합니다. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다. 이벤트 처리기 대리자에 대한 자세한 내용은 이벤트 및 대리자를 참조하십시오.
예제
다음 코드 예제에서는 Binding을 만들고, ConvertEventHandler 대리자를 Parse 및 Format 이벤트에 모두 추가합니다. 또한 DataBindings 속성을 통해 Binding을 TextBox 컨트롤의 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 이벤트