ConvertEventArgs.Value Proprietà

Definizione

Ottiene o imposta il valore dell'oggetto ConvertEventArgs.

public:
 property System::Object ^ Value { System::Object ^ get(); void set(System::Object ^ value); };
public object Value { get; set; }
public object? Value { get; set; }
member this.Value : obj with get, set
Public Property Value As Object

Valore della proprietà

Object

Valore dell'oggetto ConvertEventArgs.

Esempio

Nell'esempio di codice seguente viene creato un oggetto Binding , viene aggiunto un ConvertEventHandler delegato a entrambi gli Parse Format eventi e e viene utilizzata la DataBindings proprietà per aggiungere l'oggetto Binding all'oggetto BindingsCollection di un TextBox controllo. Il DecimalToCurrencyString delegato dell'evento, che viene aggiunto all' Format evento, usa il ToString metodo per formattare il valore associato (un Decimal tipo) come valuta. Il CurrencyStringToDecimal delegato dell'evento, che viene aggiunto all' Parse evento, converte il valore visualizzato dal controllo di nuovo nel Decimal tipo.

private:
   void DecimalToCurrencyString( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // The method converts only to string type. Test this using the 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 )
   {
      // The method converts back to decimal type only. 
      if ( cevent->DesiredType != Decimal::typeid )
      {
         return;
      }
      
      // Converts the string back to decimal using the static Parse method.
      cevent->Value = Decimal::Parse( cevent->Value->ToString(),
         NumberStyles::Currency, nullptr );
   }

   void BindControl()
   {
      // Creates the binding first. The OrderAmount is typed as Decimal.
      Binding^ b = gcnew Binding(
         "Text",ds,"customers.custToOrders.OrderAmount" );
      
      // Adds the delegates to the events.
      b->Format += gcnew ConvertEventHandler(
         this, &Form1::DecimalToCurrencyString );
      b->Parse += gcnew ConvertEventHandler(
         this, &Form1::CurrencyStringToDecimal );
      text1->DataBindings->Add( b );
   }
private void DecimalToCurrencyString(object sender, ConvertEventArgs cevent)
{
   // The method converts only to string type. Test this using the 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)
{
   // The method converts back to decimal type only. 
   if(cevent.DesiredType != typeof(decimal)) return;

   // Converts the string back to decimal using the static Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString(),
   NumberStyles.Currency, null);
}

private void BindControl()
{
   // Creates the binding first. The OrderAmount is typed as Decimal.
   Binding b = new Binding
   ("Text", ds, "customers.custToOrders.OrderAmount");
   // Adds the delegates to the events.
   b.Format += new ConvertEventHandler(DecimalToCurrencyString);
   b.Parse += new ConvertEventHandler(CurrencyStringToDecimal);
   text1.DataBindings.Add(b);
}
Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs)
   ' The method converts only to string type. Test this using the 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
 
 
Private Sub CurrencyStringToDecimal(sender As Object, cevent As ConvertEventArgs)
   ' The method converts back to decimal type only. 
   If Not cevent.DesiredType Is GetType(Decimal) Then
      Return
   End If 
   ' Converts the string back to decimal using the shared Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString, _
   NumberStyles.Currency, nothing)

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

Commenti

Il valore contenuto nella Value proprietà dipende dall'evento in cui ConvertEventArgs viene restituito. L'oggetto ConvertEventArgs può essere restituito nell' Format evento o Parse .

Quando l'oggetto ConvertEventArgs viene restituito nell' Format evento, la Value proprietà contiene il valore della proprietà non formattato dell'origine dati. All'interno dell' Format evento, è possibile leggere il valore della proprietà, formattare il valore e reimpostare la Value proprietà sul nuovo valore (formattato), impostando in questo modo il valore visualizzato nel controllo con associazione a dati.

Quando l'oggetto ConvertEventArgs viene restituito nell' Parse evento, la proprietà contiene il valore in formato personalizzato del controllo associato a dati. All'interno dell' Parse evento, è necessario leggere il valore formattato, analizzarlo e convertirlo di nuovo nello stesso tipo di dati dell'origine dati. È quindi possibile reimpostare la Value proprietà sul valore non formattato, quindi impostare il valore dell'origine dati. Per determinare il tipo di origine dati, esaminare il DesiredType valore della proprietà.

Si applica a

Vedi anche