打击取消打开文件时阻止出现错误消息

时间:2013-11-04 07:49:42

标签: c# winforms

这看起来很简单,但我一直试图让它正常工作,但我不能。这是原始代码:

ofd = new OpenFileDialog();

if (ofd.ShowDialog() == DialogResult.OK)
{
     mFileName = ofd.FileName;
}

问题是,如果用户点击对话框上的取消按钮,则会继续执行一堆我的其他代码,例如打开数据库连接等,这是用户选择取消后不必要的。所以我接着尝试了:

if (ofd.ShowDialog() == DialogResult.Cancel)
{
    return;
}
else if (ofd.ShowDialog() == DialogResult.OK)
{
    mFileName = ofd.FileName;
}

虽然这可以防止此问题,但另一个问题出现了。如果用户选择取消,则停止。但是它会打开第二个对话框,它不应该。

我似乎只能打开一个对话框,如果用户点击取消返回,否则如果用户点击打开,则继续。谢谢。

1 个答案:

答案 0 :(得分:1)

这里的问题是您多次致电ShowDialog()。它返回DialogResult枚举,因此您可以将其存储在如下变量中:

DialogResult result = ofd.ShowDialog();

然后你可以多次处理它,而不必再次显示对话框:

if(result == DialogResult.OK) {
    // OK!
}
else if(result == DialogResult.Cancel) {
    return; // Exit function
}
else {
    // Anything else you need to do
}
相关问题