8

这是我的问题。我有一个应用程序,它打开一个文件打开对话框,我试图在“文件名:”组合框部分输入文件路径和文件名。

应用程序加载一个您登录的表单。这将打开另一个表单,其中有许多按钮。选择其中一个按钮会打开另一个表单。正是在这种形式中,有一个选择文件的按钮。在这个阶段,打开了 3 个表格。这将打开标准文件打开对话框。我似乎无法处理这个文件打开对话框。

这是我正在使用的代码。

Window LoginForm = application.GetWindow("LoginForm");
LoginForm.Get<Button>("btnSelectFiles").Click(); // This is from the 3rd form that is opened 

出于某种原因,我可以使用 LoginForm 变量从其他表单访问所有按钮。我试过以下。

Window FileOpenDialog = application.GetWindow("Open", InitializeOption.NoCache);

这行不通。

我也尝试了以下方法,但这会返回 null。我认为我可以使用 LoginForm 变量来访问它。

Win32ComboBox comboBox = LoginForm.Get<Win32ComboBox>("Filename"); 

有任何想法吗?谢谢

4

2 回答 2

7

打开文件对话框是一个模式窗口。您将需要使用该LoginForm.ModalWindows()功能。来自白色项目维基

Window mainWindow = application.GetWindow("main");
List<Window> modalWindows = mainWindow.ModalWindows(); //list of all the modal windows belong to the window.
Window childWindow = mainWindow.ModalWindow("child"); //modal window with title "child"
childWindow.IsModal; //returns true
于 2010-08-24T13:12:45.270 回答
0

标准文件打开对话框。我似乎无法处理这个文件打开对话框。

另一种解决方案是

Window FileOpenDialog = application.GetWindows().Last();

我一直使用它,因为当显示时(并且考虑到它是模态的),它OpenFileDialog是您在应用程序中打开的最后一个窗口;对于这个问题,我想不出更好的单线解决方案。

于 2018-04-20T09:02:58.167 回答