Udostępnij za pośrednictwem


ControlEventHandler Delegat

Definicja

Reprezentuje metodę, która będzie obsługiwać ControlAdded zdarzenia Control i ControlRemoved klasy .

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)

Parametry

sender
Object

Źródło zdarzenia.

e
ControlEventArgs

Element ControlEventArgs zawierający dane zdarzenia.

Przykłady

Poniższy przykład kodu tworzy Bindingelement , dodaje delegata ConvertEventHandler zarówno do Parse zdarzeń, jak i Format i dodaje Binding do BindingsCollectionTextBox kontrolki za pośrednictwem DataBindings właściwości . Delegat DecimalToCurrencyString zdarzenia, dodany do Format zdarzenia, formatuje powiązaną wartość ( Decimal typ) jako walutę przy użyciu ToString metody . CurrencyStringToDecimal Delegat zdarzenia dodany do Parse zdarzenia konwertuje wartość wyświetlaną przez kontrolkę Decimal z powrotem na typ.

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

Uwagi

Podczas tworzenia delegata należy zidentyfikować metodę ControlEventArgs , która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Program obsługi zdarzeń jest wywoływany przy każdym wystąpieniu zdarzenia, o ile nie usunięto delegata. Aby uzyskać więcej informacji na temat delegatów programu obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Metody rozszerzania

GetMethodInfo(Delegate)

Pobiera obiekt reprezentujący metodę reprezentowaną przez określonego delegata.

Dotyczy

Zobacz też