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
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.
Ejemplo de un elemento de lista modificable