.NET 3.5 で実行されている古いバージョンの C# アプリケーションをサポートしています。FolderBrowserDialog
Windows Vista (32 ビットまたは 64 ビット)での問題が見つかりました。
基本的に、ダイアログは表示されますが、ルートデスクトップノードのみが表示され、それを展開して他のものを表示することさえできませんでした。明らかに、それは使用できません。
膨大な量の試行錯誤の後、残りのセットアップの前RootFolder
にプロパティを設定することで、最終的に何か役に立つものを得ることができました:
FolderBrowserDialog browsePath = new FolderBrowserDialog();
browsePath.RootFolder = Environment.SpecialFolder.MyComputer;
browsePath.SelectedPath = this.textBoxTo.Text;
browsePath.Description = TextResources.OutputTargetCaption;
browsePath.ShowNewFolderButton = true;
if(browsePath.ShowDialog(this) == DialogResult.OK)
{
this.textBoxTo.Text = UpdateLocation(browsePath.SelectedPath);
}
これはほとんど機能します。SelectedPath
ただし、 (定義によりの内容textBoxTo
)は現在のユーザーのホームディレクトリ内へのパスであり、そのパスを自動的に参照せず、代わりにマイコンピューターノードを1つに展開して表示するという奇妙な問題がありますレベル。他のパスでも問題ありません。
私の直感と同様に、あなたの最初の推測は権限の問題になると確信しています。そうではないようです。この問題は、標準アカウントと管理者アカウントの両方で、通常どおり管理者として実行しているときに発生します。もちろん、クリーン インストールです。変な権限などはありません。
すべてのデフォルトが現在のユーザーのディレクトリ内にある場合、これはかなり面倒です!
注:これはアプリケーション内でのみ発生します。私が見た限りでは、小さなテスト アプリケーションでは再現できません。
これを引き起こしている可能性のあるアイデアはありますか?
更新: Screenies:
これは私が望む動作です (小さなテスト アプリから取得)
これはデフォルト プロパティで
得られるものです これはルートを My Computer に設定することで得られるものです
注: 最後の画像はSelectedPath
、予想通りの画像…