初めまして(^^;)
ドモンと言います。
どうしても自力ではわからなかったので、どなたかお力添えをお願いします。
下記にソースを載せておきましたが、Form上にあるbutton1を押すとフォルダの参照ダイアログを表示させるだけのものなのです。
Form上にあるtextbox1にパスが書き込まれているのですが、そのパスを初期選択するパスに設定したいのです。
「D:\Documents and Settings\All Users\デスクトップ」
というパスがあるとして、
「D:\Documents and Settings\All Users」
までは初期選択される事が確認されましたが、
「デスクトップ」が入るとうまくいきません。
説明がわかりにくくて申し訳ないですが、どなたか「デスクトップ」までいれてもうまくいく方法を教えてください。
----------------------------------------------------
Private Sub Button1_Click_1 _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click
Dim pass As String
pass = TextBox1.Text
Dim FolBrows As New FolderBrowserDialog
FolBrows.Description = "ファイルの選択"
FolBrows.RootFolder = System.Environment.SpecialFolder.MyComputer
FolBrows.SelectedPath = pass
FolBrows.ShowNewFolderButton = False
If FolBrows.ShowDialog() = DialogResult.OK Then
TextBox1.Clear()
TextBox1.Text = FolBrows.SelectedPath
End If
FolBrows.Dispose()
End Sub
----------------------------------------------------
環境を書き込み忘れていました。
VB.netです。
ドモン さん こんにちは。
> 「デスクトップ」が入るとうまくいきません。
ヘルプ(MSDNライブラリ)を読むと無理っぽい気が・・・
ヘルプの「FolderBrowserDialog.SelectedPath プロパティ 」によると、
(http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemwindowsformsfolderbrowserdialogclassselectedpathtopic.asp)
---------------------------------------------------
SelectedPath は RootFolder のサブフォルダへの絶対パスである必要があります
(より正確に表現すると、RootFolder が表すシェル名前空間のサブフォルダへの絶対パスである必要があります)。
---------------------------------------------------
だそうです。
で、
> 「D:\Documents and Settings\All Users\デスクトップ」
って、『デスクトップ』を表す、特殊フォルダですよね?
つまり、
> FolBrows.RootFolder = System.Environment.SpecialFolder.MyComputer
で指定した特殊フォルダ『マイコンピュータ』より、上位のフォルダってことですよね・・・
大吉末吉 さん
本当にわかりやすい説明をありがとうございます!!
助かりました(^-^)
> ---------------------------------------------------
> SelectedPath は RootFolder のサブフォルダへの絶対パスである必要があります
> (より正確に表現すると、RootFolder が表すシェル名前空間のサブフォルダへの絶対パスである必要があります)。
> ---------------------------------------------------
なるほど、、、。
とりあえず出来ないことがわかっただけでも収穫がありました!
本当にありがとうございます!
RootFolderをマイコンピュータにしてデスクトップを指定してみましたが、
再現しませんでした。指定できます。
(Win2000SP4+VB.NET2003SP1)。
単に、"C:\Documents and Setting〜以下略"の生フォルダになるので
ちょっと気持ち悪いですが(^^;。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer
Me.FolderBrowserDialog1.SelectedPath = "C:\Documents and Settings\All Users\デスクトップ"
Me.FolderBrowserDialog1.ShowDialog()
MsgBox(Me.FolderBrowserDialog1.SelectedPath.ToString)
Me.Close()
End Sub
もげ さん こんにちは。
私は、WindowsXP(SP2)+VB2005で試しました。
この環境では、再現しました。
と言うことは、環境依存と言うことですか・・・
>>大吉末吉殿、ドモン殿
質問者殿納得&解決済みのところ恐縮です。
WinXPProSP1+VB.NET2003SP1環境で確認したところ、
再現しました(指定できません。)のでご参考までに。
>と言うことは、環境依存と言うことですか・・・
ということですね。
もげさん、大吉末吉さん
色々とお手数をおかけしてしまいまして、申し訳ないです。
環境依存ということでしたか。。。
今の私の環境は、WinXPProSP1+VB.NET2003SP1ですので、
指定は出来ないということになってしまいますね(^-^;)
ありがとうございました!
ツイート | ![]() |