如果不满足条件,文件夹对话框 return 进行对话

Folder Dialog return to dialog if criteria not met

为了便于使用,我正在使用 Ookii Vista 文件夹对话框,并且我正在执行从按钮调用的代码:

using System;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using Ookii.Dialogs;

private string LoadDirectories()
{
    VistaFolderBrowserDialog fbd = new VistaFolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK && fbd.SelectedPath.Contains("U000"))
    {
        return fbd.SelectedPath;
    }
    else
    {
        MessageBox.Show("Folder must be root assembly, which has U000 in name");
    }
    
    return string.Empty;
}

目前,如果用户没有选择名称中带有 U000 的文件夹,对话框将关闭,但我希望它保持打开状态,直到用户取消或设置正确的文件夹路径。我到处都找不到这个。

简单实现你的需求(加一个while):

使用的 nuget:Ookii.Dialogs.Wpf

private string LoadDirectories()
{
    VistaFolderBrowserDialog fbd = new VistaFolderBrowserDialog();
    while (true)
    {
        if (fbd.ShowDialog() == false)
        {
            break;
        }
        else if (fbd.SelectedPath.Contains("U000"))
        {

            return fbd.SelectedPath;
        }
        else
        {
            MessageBox.Show("Folder must be root assembly, which has U000 in name");
        }
    }
    return string.Empty;
}

输出: