Share via


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 informazioni specifiche delle impostazioni locali vengono passate a un controllo in un formato non corretto, ad esempio una data non formattata correttamente.

Se un nuovo valore non può essere convertito da una stringa a un formato riconosciuto dal controllo.

Quando viene effettuato un tentativo di modificare un controllo non abilitato.

Esempio

Nel codice di esempio seguente viene illustrato 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 ai contenuti implementando IValueProvider. I controlli di modifica a più righe, tuttavia, non implementano IValueProvider, ma forniscono l'accesso ai contenuti implementando ITextProvider.

I 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