Белый - диалоговое окно открытия файла - PullRequest
8 голосов
/ 17 августа 2010

Это моя проблема.У меня есть приложение, в котором открывается диалоговое окно открытия файла, и я пытаюсь ввести путь к файлу и имя файла в поле со списком «Имя файла:».

Приложение загружается с формой, гдеВы входите в систему. Это открывает другую форму, где есть несколько кнопок.Выбор одной из этих кнопок открывает другую форму.Именно в этой форме есть кнопка для выбора файла.На этом этапе открыты 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);

Это не работает.

Я также пробовал следующее, но это возвращает ноль.Я думал, что смогу получить доступ к этому с помощью переменной LoginForm.

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

Есть идеи?Спасибо

Ответы [ 2 ]

7 голосов
/ 24 августа 2010

Диалог открытия файла является модальным окном.Вам нужно будет использовать функцию 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
0 голосов
/ 20 апреля 2018

стандартное диалоговое окно открытия файла. Кажется, я не могу описать это диалоговое окно открытия файла.

Другое решение просто

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

Я использую это все время, так как при показе (и учитывая, что он модальный), OpenFileDialog - это последнее окно, которое вы открыли в своем приложении; Я не могу придумать лучшего однострочного решения для этой проблемы.

...