我正在编写一个小类,用于驱动Win Form应用程序的集成测试。测试驱动程序类可以访问主窗体,并查找需要按名称使用的控件,并使用它来驱动测试。为了找到控件,我正在遍历Control.Controls树。但是,当我想进入对话框窗口(显示为对话框的自定义窗体)中的控件时,我陷入了困境。我如何掌握它?
最佳答案
您可以使用静态 Form.ActiveForm
属性获得对当前事件表单的引用。
编辑:如果没有Form
具有焦点,则Form.ActiveForm
将返回null
。
解决此问题的一种方法是使用Application.OpenForms
集合并检索的最后一个项,当使用Form
显示时,女巫将是事件的ShowDialog
:
// using Linq:
var lastOpenedForm = Application.OpenForms.Cast<Form>().Last()
// or (without Linq):
var lastOpenedForm = Application.OpenForms[Application.OpenForms.Count - 1]
关于c# - 如何获得对当前有效模态形式的引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1126829/