首页 文章

FolderBrowserDialog隐藏在后台

提问于
浏览
1

我从Winforms应用程序中打开FolderBrowserDialog . 应用程序启动后第一次运行正常 . 然后我开始做背景工作并做一些工作 .

如果我那么,在Backgroundworker完成之后,再次打开FolderBrowserDialog,应用程序被“锁定”,因为FolderBrowserDialog已打开但隐藏在后台的某处 . 我必须按ALT键才能使对话框可见 .

问题必须与背景工作者做点什么......我怎样才能解决这个问题?

这是我打开对话框的代码:

private void metroButtonFolderBrowser_Click(object sender,EventArgs e){

FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
        folderBrowserDialog1.Description = "CD Importordner wählen";
        folderBrowserDialog1.ShowNewFolderButton = false;


        DialogResult result = folderBrowserDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            importfolder = folderBrowserDialog1.SelectedPath;
            ImportfolderLabelText.Text = importfolder;

        }
        else if (result == DialogResult.Cancel)
        {
            MessageBox.Show("Abbruch gewählt!");
            log.Info("User interrupted folder browser dialog.");
        }

    }

1 回答

  • 0

    您不能直接设置TopMost,但可以为FolderBrowserDialog提供最顶层的父级:

    using System;
    using System.Windows.Forms;
    
    private void BrowserForDirectory()
    {
        FolderBrowserDialog dirDialog = new FolderBrowserDialog();
    
            using (var dummy = new Form() { TopMost = true })
            {
                if (dirDialog.ShowDialog(dummy.Handle))
                {
                    importfolder = dirDialog.SelectedPath;
                }
            }
    }
    

相关问题