我有 vb.net 打开另一个 vb.net exe进行测试的表单。 我正在尝试测试加载 exe 时特定文本框是否具有焦点。
我的测试器表单使用 Assembly.UnsafeLoadFrom(_path) 加载 exe然后,它在新线程上运行 FormtoTest
我使用 System.Type.GetProperty() 和 GetFields() 函数来获取 FormtoTest 的所有输入字段及其属性。
然后我在输入字段列表中找到这个文本框,
但是当我调用System.Type.GetProperty("Focused")时,我得到一个错误:"跨线程操作无效:控制从创建它的线程以外的线程访问的'txtID'。"
感谢您的帮助!
听起来你需要使用委托
引用
http://msdn.microsoft.com/en-us/library/ms951089.aspx
这是在 C# 中,但也解释了基本概念。http://www.codeproject.com/Articles/2083/The-key-to-multi-threaded-Windows-Forms-UI-interac