IValueProvider.SetValue(String) Método

Definição

Define o valor de um controlo.

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

Parâmetros

value
String

O valor a definir. O fornecedor é responsável por converter o valor para o tipo de dado apropriado.

Exceções

Se a informação específica da localidade for passada para um controlo num formato incorreto, como uma data formatada incorretamente.

Se um novo valor não puder ser convertido de uma string para um formato, o controlo reconhece.

Quando se tenta manipular um controlo que não está ativado.

Exemplos

O seguinte exemplo de código demonstra um controlo personalizado que permite definir o seu valor para uma cadeia de comprimento limitado.

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

Observações

Os controlos de edição de linha única suportam o acesso programático ao seu conteúdo implementando o IValueProvider. No entanto, os controles de edição de várias linhas não implementam IValueProvider, em vez disso, fornecem acesso ao seu conteúdo implementando ITextProvider.

Controlos como ListItem e TreeItem devem ser implementados IValueProvider se o valor de algum dos itens for editável, independentemente do modo de edição atual do controlo. O controlo parental também deve implementar IValueProvider se os itens filhos forem editáveis.

Item da lista editável. Exemplo de um Item de Lista Editável

Aplica-se a