Compartir a través de


IValueProvider.SetValue(String) Método

Definición

Establece el valor de un control .

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

El valor que se va a establecer. El proveedor es responsable de convertir el valor en el tipo de datos adecuado.

Excepciones

Si se pasa información específica de la configuración regional a un control en un formato incorrecto, como una fecha con formato incorrecto.

Si no se puede convertir un nuevo valor de una cadena a un formato que reconoce el control.

Cuando se intenta manipular un control que no está habilitado.

Ejemplos

En el código de ejemplo siguiente se muestra un control personalizado que permite establecer su valor en una cadena de longitud limitada.

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

Comentarios

Los controles de edición de una sola línea admiten el acceso a su contenido mediante programación al implementar IValueProvider. Sin embargo, los controles de edición de varias líneas no implementan IValueProvider; en su lugar, proporcionan acceso a su contenido mediante la implementación de ITextProvider.

Los controles como ListItem y TreeItem deben implementarse IValueProvider si el valor de cualquiera de los elementos es editable, independientemente del modo de edición actual del control. El control primario también debe implementar IValueProvider si se pueden editar los elementos secundarios.

Elemento de lista editable. Ejemplo de un elemento de lista editable

Se aplica a