ControlEventHandler Делегат
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет метод, который будет обрабатывать ControlAdded и ControlRemoved события Control класса.
public delegate void ControlEventHandler(System::Object ^ sender, ControlEventArgs ^ e);
public delegate void ControlEventHandler(object sender, ControlEventArgs e);
public delegate void ControlEventHandler(object? sender, ControlEventArgs e);
type ControlEventHandler = delegate of obj * ControlEventArgs -> unit
Public Delegate Sub ControlEventHandler(sender As Object, e As ControlEventArgs)
Параметры
- sender
- Object
Источник события.
Объект, ControlEventArgs содержащий данные события.
Примеры
В следующем примере кода создается Bindingделегат, добавляется ConvertEventHandler делегат как к событиям, так Parse и FormatBinding к BindingsCollectionTextBox элементу управления через DataBindings свойство. Делегат DecimalToCurrencyString события, добавленный в Format событие, форматирует привязанное значение ( Decimal тип) в виде валюты с помощью ToString метода. Делегат CurrencyStringToDecimal события, добавленный в Parse событие, преобразует значение, отображаемое элементом управления обратно в Decimal тип.
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.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 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
Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs)
' Check for the appropriate 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 CurrencyStringToDecimal(sender As Object, cevent As ConvertEventArgs)
' Check for the appropriate DesiredType.
If cevent.DesiredType IsNot 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
Комментарии
При создании делегата ControlEventArgs вы определите метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, добавьте экземпляр делегата в событие. Обработчик событий вызывается всякий раз, когда происходит событие, если вы не удалите делегат. Дополнительные сведения о делегатах обработчика событий см. в разделе "Обработка и создание событий".
Методы расширения
| Имя | Описание |
|---|---|
| GetMethodInfo(Delegate) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |