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,向 Parse 事件和 Format 事件添加 ConvertEventHandler 委托,并通过 DataBindings 属性向 TextBox 控件的 BindingsCollection 添加 Binding。添加到 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 事件