次の方法で共有


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を実装して、そのコンテンツへのアクセスを提供します。

コントロールの現在の編集モードに関係なく、いずれかの項目の値が編集可能な場合は、 や などのListItemTreeItemコントロールを実装IValueProviderする必要があります。 子項目が編集可能な場合は、親コントロールも実装 IValueProvider する必要があります。

編集可能なリスト アイテム。
編集可能なリスト項目の例

適用対象