Compartir vía


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

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

Excepciones

Si la información específica de la configuración regional se pasa 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 el control reconozca.

Si se realiza un intento de 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 línea única admiten el acceso mediante programación a su contenido a través de la implementación de IValueProvider. Sin embargo, los controles de edición multilínea no implementan IValueProvider; en su lugar, proporcionan acceso a su contenido mediante la implementación de ITextProvider.

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

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

Se aplica a