Export (0) Print
Expand All

ValuePattern.SetValue Method

Sets the value of the control.

Namespace: System.Windows.Automation
Assembly: UIAutomationClient (in uiautomationclient.dll)

public void SetValue (
	string value
)
public void SetValue (
	String value
)
public function SetValue (
	value : String
)
Not applicable.

Parameters

value

Exception typeCondition

InvalidOperationException

The control is read-only.

ElementNotEnabledException

The control is not enabled.

Single-line edit controls support programmatic access to their contents through ValuePattern. However, multi-line edit controls do not support the ValuePattern; instead they provide access to their content through the TextPatterncontrol pattern.

In the following example, an AutomationElement that supports the ValuePatterncontrol pattern has its ValueProperty set to a user-specified value.

///--------------------------------------------------------------------
/// <summary>
/// Inserts a string into a text control that supports ValuePattern.
/// </summary>
/// <param name="targetControl">A text control.</param>
/// <param name="value">The string to be inserted.</param>
///--------------------------------------------------------------------
private void InsertText(AutomationElement targetControl,
                                    string value)
{
    // Validate arguments / initial setup
    if (value == null)
        throw new ArgumentNullException(
            "String parameter must not be null.");

    if (targetControl == null)
        throw new ArgumentNullException(
            "AutomationElement parameter must not be null");

    // A series of basic checks prior to attempting an insertion.
    //
    // Check #1: Is control enabled?
    // An alternative to testing for static or read-only controls 
    // is to filter using 
    // PropertyCondition(AutomationElement.IsEnabledProperty, true) 
    // and exclude all read-only text controls from the collection.
    if (!targetControl.Current.IsEnabled)
    {
        throw new InvalidOperationException(
            "The control is not enabled.\n\n");
    }

    // Check #2: Are there styles that prohibit us 
    //           from sending text to this control?
    if (!targetControl.Current.IsKeyboardFocusable)
    {
        throw new InvalidOperationException(
            "The control is not focusable.\n\n");
    }

    // Once you have an instance of an AutomationElement,  
    // check if it supports the ValuePattern pattern.
    object valuePattern = null;

    if (!targetControl.TryGetCurrentPattern(
        ValuePattern.Pattern, out valuePattern))
    {
        // Elements that support TextPattern 
        // do not support ValuePattern and TextPattern
        // does not support setting the text of 
        // multi-line edit or document controls.
        // For this reason, text input must be simulated.
    }
    // Control supports the ValuePattern pattern so we can 
    // use the SetValue method to insert content.
    else
    {
        if (((ValuePattern)valuePattern).Current.IsReadOnly)
        {
            throw new InvalidOperationException(
                "The control is read-only.");
        }
        else
        {
            ((ValuePattern)valuePattern).SetValue(value);
        }
    }
}

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0

Community Additions

ADD
Show:
© 2014 Microsoft