我正在编写一个小类,用于驱动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/

10-12 06:42