IValueProvider.SetValue(String) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.
Exemplo de um Item de Lista Editável