出于好奇,我想知道为什么我不能在FolderBrowserDialog
的构造函数中一个接一个地显示Window
的两个不同实例,但可以在Window
中执行此操作'Loaded
事件。
fbd1
),但不会显示下一个对话框。示例1:
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
using (var fbd1 = new FolderBrowserDialog()) {
fbd1.ShowDialog();
}
using (var fbd2 = new FolderBrowserDialog()) {
fbd2.ShowDialog();
}
}
}
示例2:
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e) {
using (var fbd1 = new FolderBrowserDialog()) {
fbd1.ShowDialog();
}
using (var fbd2 = new FolderBrowserDialog()) {
fbd2.ShowDialog();
}
}
}
顺便说一句,我也用WinForms测试过,这几乎是一样的。
它不适用于Form
的{{1}}事件Form
的构造函数和,但适用于{{1}事件。
答案 0 :(得分:1)
正如 Reza Aghaei 在第二次评论中所说:
当你关闭第一个对话框时,会出现第二个对话框,但是从那时起 您的
Form
目前不可见,在任务栏中不可见, 它不会激活第二个对话框,而它会在其他对话框后面打开 视窗。只需按Alt + Tab即可查看打开的窗口,您将看到 第二个对话也是。但是当您的表单可见时(例如运行时) 显示的代码)你不会有这个问题。
这是我好奇心的答案。