Condividi tramite


IValueProvider.SetValue(String) Metodo

Definizione

Imposta il valore di un controllo.

public:
 void SetValue(System::String ^ value);
public void SetValue(string value);
abstract member SetValue : string -> unit
Public Sub SetValue (value As String)

Parametri

value
String

Il valore da impostare. Il provider è responsabile della conversione del valore nel tipo di dati appropriato.

Eccezioni

Se le informazioni specifiche delle impostazioni locali vengono passate a un controllo in un formato non corretto, ad esempio una data formattata in modo non corretto.

Se non è possibile convertire un nuovo valore da una stringa a un formato riconosciuto dal controllo.

Quando si tenta di modificare un controllo non abilitato.

Esempio

Il codice di esempio seguente illustra un controllo personalizzato che consente di impostare il relativo valore su una stringa di lunghezza limitata.

/// <summary>
/// Sets the value of the control.
/// </summary>
/// <param name="value">
/// The new value.
/// </param>
void IValueProvider.SetValue(string value)
{
    if (((IValueProvider)this).IsReadOnly)
        throw new InvalidOperationException(
            "Operation cannot be performed.");
    // Arbitrary string length limit.
    if (value.Length > 5)
        throw new ArgumentOutOfRangeException(
            "String is greater than five characters in length.");
    controlValue = value;
}
''' <summary>
''' Sets the value of the control.
''' </summary>
''' <param name="value">
''' The new value.
''' </param>
Private Sub SetValue(ByVal value As String) Implements IValueProvider.SetValue
    If (CType(Me, IValueProvider)).IsReadOnly Then
        Throw New InvalidOperationException("Operation cannot be performed.")
    End If
    ' Arbitrary string length limit.
    If value.Length > 5 Then
        Throw New ArgumentOutOfRangeException("String is greater than five characters in length.")
    End If
    controlValue = value
End Sub

Commenti

I controlli di modifica a riga singola supportano l'accesso a livello di codice al contenuto implementando IValueProvider. Tuttavia, i controlli di modifica su più righe non implementano IValueProvider; forniscono invece l'accesso al contenuto implementando ITextProvider.

Controlli come ListItem e TreeItem devono implementare IValueProvider se il valore di uno degli elementi è modificabile, indipendentemente dalla modalità di modifica corrente del controllo. Il controllo padre deve implementare IValueProvider anche se gli elementi figlio sono modificabili.

Voce di elenco modificabile. Esempio di elemento elenco modificabile

Si applica a