.NET Automation ControlType.Document:如何操作文本?

发布于 2024-11-24 02:38:56 字数 299 浏览 0 评论 0原文

如何使用 System.Windows.Automation 将文本设置到 ControlType.Document 元素中?

ValuePattern 不适用于文档 ControlType,并且 TextPattern 不允许设置新值。

这不起作用:

automationElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern)
    .setValue(value);

How can I set text into a ControlType.Document element using the System.Windows.Automation?

The ValuePattern is not available for Document ControlType and TextPattern doesn't allow setting of new values.

This does not work:

automationElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern)
    .setValue(value);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兔小萌 2024-12-01 02:38:56

我用这个方法发现了一个丑陋的方法:

private void InsertTextIntoAutomationElement(AutomationElement element, string value) {

    object valuePattern = null;

    if (!element.TryGetCurrentPattern(ValuePattern.Pattern, out valuePattern)) {
        element.SetFocus();
        Thread.Sleep(100);

        SendKeys.SendWait("^{HOME}");   // Move to start of control
        SendKeys.SendWait("^+{END}");   // Select everything
        SendKeys.SendWait("{DEL}");     // Delete selection
        SendKeys.SendWait(value);
    } else{
        element.SetFocus();
        ((ValuePattern)valuePattern).SetValue(value);
    }
}

I found an ugly way with this method:

private void InsertTextIntoAutomationElement(AutomationElement element, string value) {

    object valuePattern = null;

    if (!element.TryGetCurrentPattern(ValuePattern.Pattern, out valuePattern)) {
        element.SetFocus();
        Thread.Sleep(100);

        SendKeys.SendWait("^{HOME}");   // Move to start of control
        SendKeys.SendWait("^+{END}");   // Select everything
        SendKeys.SendWait("{DEL}");     // Delete selection
        SendKeys.SendWait(value);
    } else{
        element.SetFocus();
        ((ValuePattern)valuePattern).SetValue(value);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文