2

ofd1.RestoreDirectoryただし、設定した次のコードfalseでは、ダイアログは毎回初期ディレクトリを開きます。私が気づいていないことはありますか?

private void btnMeshFile_Click(object sender, EventArgs e)
{
    OpenFileDialog ofd1 = new OpenFileDialog();
    ofd1.Title = "Open";
    ofd1.InitialDirectory = @"c:\";
    ofd1.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
    ofd1.FilterIndex = 2;
    ofd1.RestoreDirectory = false;
    if (ofd1.ShowDialog() == DialogResult.OK)
    {
        string fileName = Path.GetFileName(ofd1.FileName);
        MeshDirectoryPath = Path.GetFullPath(ofd1.FileName).Replace(@"\", @"\\");
        txtMeshFile.Text = fileName;
    }
}
4

1 に答える 1

10

のMSDNドキュメントからRestoreDirectory

ダイアログ ボックスを閉じる前に現在のディレクトリを復元するかどうかを示す値を取得または設定します。

したがって、このプロパティはOS現在のディレクトリの復元に関するものです。

ただし、コードではInitialDirectoryプロパティも使用して、パスから開始するたびにダイアログを強制し@"c:\";ます。これを削除すると、問題が解決します。

于 2012-02-15T15:11:42.270 に答える