本文整理匯總了C#中System.Windows.Automation.ValuePattern.SetValue方法的典型用法代碼示例。如果您正苦於以下問題:C# ValuePattern.SetValue方法的具體用法?C# ValuePattern.SetValue怎麽用?C# ValuePattern.SetValue使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。
在下文中一共展示了ValuePattern.SetValue方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: InsertText
///--------------------------------------------------------------------
/// <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);
}
}
}