IValueProvider.SetValue(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
Ejemplo de un elemento de lista editable