Compartilhar via


IValueProvider.SetValue(String) Método

Definição

Define o valor de um controle.

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 ser definido. O provedor é responsável por converter o valor no tipo de dados apropriado.

Exceções

Se informações específicas a uma localidade são passadas para um controle em um formato incorreto, tal como uma data formatada incorretamente.

Se um novo valor não pode ser convertido de uma cadeia de caracteres em um formato que o controle reconhece.

Quando é feita uma tentativa de manipular um controle que não está habilitado.

Exemplos

O código de exemplo a seguir demonstra um controle personalizado que permite que seu valor seja definido como uma cadeia de caracteres 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

Comentários

Controles de edição de linha única dão suporte ao acesso programático ao seu conteúdo implementando IValueProvider. No entanto, controles de edição de várias linhas não implementam IValueProvider; em vez disso, eles fornecem acesso ao seu conteúdo implementando ITextProvider.

Controles como ListItem e TreeItem devem implementar IValueProvider se o valor de qualquer um dos itens for editável, independentemente do modo de edição atual do controle. O controle pai também deve implementar IValueProvider se os itens filho forem editáveis.

Item de lista editável.
Exemplo de um item de lista editável

Aplica-se a