gpt4 book ai didi

winforms - 从编码的 UI 测试中的文本框中读取文本

转载 作者:行者123 更新时间:2023-12-02 05:31:51 24 4
gpt4 key购买 nike

编码的 UI 测试 WinEdit 类中存在错误/限制:当覆盖 OnKeyDown 方法或订阅 KeyDown 事件时文本框,则无法使用 WinEdit.Text 属性。

也就是说,当你有这个...

private void myTextbox_KeyDown(object sender, KeyEventArgs e)
{
// ...
}

...这行不通:

var edit = new WinEdit(ancestor);
edit.SearchProperties[WinControl.PropertyNames.ControlName] = "myTextbox";
edit.Text = "New value"; // This doesn't work

我找到了设置值 here 的解决方法:

var edit = new WinEdit(ancestor);
edit.SearchProperties[WinControl.PropertyNames.ControlName] = "myTextbox";
Mouse.Click(edit);
System.Windows.Forms.SendKeys.SendWait("New value");

我的问题:有人知道读取值的解决方法吗?

var edit = new WinEdit(Window);
edit.SearchProperties[WinControl.PropertyNames.ControlName] = "myTextbox";
string actual = edit.Text; // This doesn't work

最佳答案

我自己找到了解决方法:

[DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)]
public static extern bool SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder lParam);

const int WM_GETTEXT = 0x000D;

var edit = new WinEdit(Window);
edit.SearchProperties[WinControl.PropertyNames.ControlName] = "myTextbox";
var sb = new StringBuilder(1024);
SendMessage(edit.WindowHandle, WM_GETTEXT, sb.Capacity, sb);
string actual = sb.ToString();

关于winforms - 从编码的 UI 测试中的文本框中读取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com