Udostępnij za pośrednictwem


IValueProvider.SetValue(String) Metoda

Definicja

Ustawia wartość kontrolki.

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

Parametry

value
String

Wartość do ustawienia. Dostawca jest odpowiedzialny za konwertowanie wartości na odpowiedni typ danych.

Wyjątki

Jeśli informacje specyficzne dla ustawień regionalnych są przekazywane do kontrolki w nieprawidłowym formacie, takim jak niepoprawnie sformatowana data.

Jeśli nie można przekonwertować nowej wartości z ciągu na format rozpoznany przez kontrolkę.

Po podjęciu próby manipulowania kontrolką, która nie jest włączona.

Przykłady

Poniższy przykładowy kod przedstawia niestandardową kontrolkę, która umożliwia ustawienie jej wartości na ciąg o ograniczonej długości.

/// <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

Uwagi

Kontrolki edycji jednowierszowej obsługują programowy dostęp do ich zawartości, implementując polecenie IValueProvider. Jednak kontrolki edycji wielowierszowej nie implementują IValueProvider; zamiast tego zapewniają dostęp do zawartości przez zaimplementowanie elementu ITextProvider.

Kontrolki, takie jak ListItem i TreeItem muszą implementować IValueProvider , jeśli wartość dowolnego elementu jest edytowalna, niezależnie od bieżącego trybu edycji kontrolki. Kontrolka nadrzędna musi również zostać zaimplementowana IValueProvider , jeśli elementy podrzędne można edytować.

Edytowalny element listy.
Przykład elementu listy edytowalnej

Dotyczy