我可以允许OpenFileDialog返回空/空文件名吗?

时间:2014-07-07 13:44:57

标签: c# return filenames openfiledialog string

我正在寻找一种强制 OpenFileDialog ShowDialog ()中返回 DialogResult.OK 的方法,即使用户离开<对话框的em> FileName 字段为空白。

我的意思是,如果用户点击“打开”,我希望能够处理 FileName 属性,无论它的值是什么。

我知道我不能继承 OpenFileDialog ,所以,是否有一些我没有发现的方法/属性/事件?

1 个答案:

答案 0 :(得分:2)

据我所知,当没有选择文件或文件夹的文本框中没有输入任何内容时,用户无法按下对话框上的Open按钮。如果您不关心该字段是否为空白,为什么还要费心使用DialogResult.OK?只需在用户选择Cancel时显示对话框,FileName字段将为空。

var ofd = new OpenFileDialog();
var result = ofd.ShowDialog();
var fileName = ofd.FileName;

<强>更新

如果您确实希望OKCancel之间存在差异,可以使用以下代码:

var ofd = new OpenFileDialog();
var result = ofd.ShowDialog();

if (result == DialogResult.OK)
{
    //Process FileName
}
else if(result == DialogResult.Cancel)
{
    //Process empty string
}

<强>更新

if (MessageBox.Show("Select a file?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
    var ofd = new OpenFileDialog();
    var result = ofd.ShowDialog();

    if (result == DialogResult.OK)
    {
        var fileName = ofd.FileName;
        //Do something with the filename
    }
    else if(result == DialogResult.Cancel)
    {
        //Process 'Cancel': create file or show errormessage or ...
    }
}
else
{
    //Create file
}