Share via


IValueProvider.SetValue(String) 方法

定义

设置控件的值。

public:
 void SetValue(System::String ^ value);
public void SetValue (string value);
abstract member SetValue : string -> unit
Public Sub SetValue (value As String)

参数

value
String

要设置的值。 提供程序负责将值转换为相应的数据类型。

例外

如果向控件传递了格式不正确的区域设置特定信息(如格式不正确的日期)。

如果无法将新值从字符串转换为控件可识别的格式。

当尝试操作未启用的控件时。

示例

下面的示例代码演示了一个自定义控件,该控件允许将其值设置为长度有限的字符串。

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

注解

单行编辑控件支持通过实现 IValueProvider编程访问其内容。 但是,多行编辑控件不实现 IValueProvider;相反,它们通过实现 ITextProvider来提供对其内容的访问。

如果任何项的值是可编辑的,则和 TreeItemListItem控件都必须实现IValueProvider,而不管控件的当前编辑模式如何。 如果子项可编辑,父控件还必须实现 IValueProvider

可编辑列表项。
可编辑列表项的示例

适用于