我正在寻找一种强制 OpenFileDialog 在 ShowDialog ()中返回 DialogResult.OK 的方法,即使用户离开<对话框的em> FileName 字段为空白。
我的意思是,如果用户点击“打开”,我希望能够处理 FileName 属性,无论它的值是什么。
我知道我不能继承 OpenFileDialog ,所以,是否有一些我没有发现的方法/属性/事件?
答案 0 :(得分:2)
据我所知,当没有选择文件或文件夹的文本框中没有输入任何内容时,用户无法按下对话框上的Open
按钮。如果您不关心该字段是否为空白,为什么还要费心使用DialogResult.OK
?只需在用户选择Cancel
时显示对话框,FileName
字段将为空。
var ofd = new OpenFileDialog();
var result = ofd.ShowDialog();
var fileName = ofd.FileName;
<强>更新强>
如果您确实希望OK
和Cancel
之间存在差异,可以使用以下代码:
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
}