DOBON.NET DOBON.NETプログラミング掲示板過去ログ

FolderBrowserDialogの初期値が

環境/言語:[Vista、VB2005]
分類:[.NET]

以下の様なコーディングをしています。
FolderBrowserDialog1で選択したフォルダをtxtFolder.Textに設定し
次にFolderBrowserDialog1を開く時にはtxtFolder.Textの値を初期値に
したいのですが。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim FolderBrowserDialog1 As FolderBrowserDialog

FolderBrowserDialog1 = New FolderBrowserDialog
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer
If txtFolder.Text <> "" Then
FolderBrowserDialog1.SelectedPath = txtFolder.Text
End If
If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
txtFolder.Text = FolderBrowserDialog1.SelectedPath 'フォルダ名を取得
End If
End Sub


FolderBrowserDialog1で

ユーザー−>(ユーザー名)−>デスクトップ

等と選択すると返り値は

C:\Users\(ユーザー名)\Desktop

になりtxtFolder.Textにチャンと設定されるのですが
次にFolderBrowserDialog1を開いた時に初期値として設定されません。

これってしょうがないの?仕様?
なにか回避策は有りませんでしょうか?

どなたか御指導下さいますよう、よろしくお願いいたします。
  • 題名: Re[1]: FolderBrowserDialogの初期値が
  • 著者: Hongliang
  • 日時: 2009/10/21 1:27:43
  • ID: 25618
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
ざっと調べましたが、SHBrowseForFolder に渡す BROWSEINFO の ulFlags に BIF_NEWDIALOGSTYLE が指定されていると一部のフォルダ(users の下辺り)でそうなるみたいですね。
FolderBrowserDialog は強制的にこのフラグを使うようなので、FolderBrowserDialog を使う限りどうしようもなさそうです。
自分で SHBrowseForFolder を呼び出せばこのフラグを使わないことも可能ですが、フォルダの新規作成やらのいくつかの機能が使用できなくなるのでそれはそれで不便です。
// 検索しづらい案件ですねー。

DOBON.NET | プログラミング道 | プログラミング掲示板