C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: フォルダ選択ダイアログについて


(過去ログ 104 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■62290 / inTopicNo.1)  フォルダ選択ダイアログについて
  
□投稿者/ 竜馬1989 (9回)-(2011/10/01(Sat) 01:35:51)

分類:[VB.NET/VB2005 以降] 

いつもお世話になっております。
VB2008で作成しているツール(Windowsフォーム)で、対象フォルダに複数ファイルを保存したり、
対象フォルダ内の特定のファイルを読み込んだりするため、フォルダ選択ダイアログ
(FolderBrowserDialog)を使用していますが、以下の点でFolderBrowserDialogは使い勝手が悪いと思っています。

・フォルダのショートカットを参照できない
・現在選択しているフォルダの絶対パスが表示されないので、フォルダ階層が深くなると、今どこを見ているのか分かりにくい
・環境によっては、ファイルサーバーのフォルダ等、ネットワークフォルダが表示されない場合がある

このため、FolderBrowserDialogのカスタマイズや、これに代わるダイアログを模索中ですが、
上記要件を満たすフォルダダイアログって標準で備わっていないのでしょうか?
例えば、VisualStudioで新規作成したプロジェクトを保存するとき、ファイルを開くダイアログのような形式で
フォルダを選択するダイアログが表示されますが、このようなダイアログでもいいと思っています。
私のように不便を感じる人も多いのではないかと思うのですが、これに関する記事を探すことができませんでした。
API利用でもいいので、このようなフォルダ選択ダイアログを実現する方法をご教示頂きたく、宜しくお願い申し上げます。

引用返信 編集キー/
■62306 / inTopicNo.2)  Re[1]: フォルダ選択ダイアログについて
□投稿者/ gonna (84回)-(2011/10/03(Mon) 00:58:26)
自分でフォームを作ってコードを書いて処理するしかないのではないでしょうか?
引用返信 編集キー/
■62310 / inTopicNo.3)  Re[1]: フォルダ選択ダイアログについて
□投稿者/ shu (1025回)-(2011/10/03(Mon) 08:47:04)
No62290 (竜馬1989 さん) に返信

この方法が良いかは分かりませんが
OpenFileDialogに何かファイル名を設定しておいて、最終的にファイル名部分を無視するとか。
引用返信 編集キー/
■62311 / inTopicNo.4)  Re[2]: フォルダ選択ダイアログについて
□投稿者/ Hongliang (810回)-(2011/10/03(Mon) 09:55:03)
Vista 以降限定で良いなら、IFileOpenDialog を使用できますね。FOS_PICKFOLDERS を使えばフォルダ選択が可能です。
.NET から使うには、Windows API Code Pack for Microsoft .NET Framework を使うのが便利でしょうか。

もっとも、Windows Vista / Windows Server 2008 だと問題があるらしいですが……(修正プログラムは一応公開済み)。
http://support.microsoft.com/kb/969885/ja
引用返信 編集キー/
■62328 / inTopicNo.5)  Re[3]: フォルダ選択ダイアログについて
□投稿者/ 竜馬1989 (10回)-(2011/10/03(Mon) 19:01:20)
gonnaさん、shuさん、Hongliangさん、御回答ありがとうございます。

gonnaさん
> 自分でフォームを作ってコードを書いて処理するしかないのではないでしょうか?
やはりそうですか。
ただ、費用対効果を考えると、この方法を採用することには躊躇します。

shuさん
> OpenFileDialogに何かファイル名を設定しておいて、最終的にファイル名部分を無視するとか。

おそらくOpenFileDialogのCheckFileExistsプロパティをFalseにするのだと思いますが、
そのようにして検証を行ってみましたが、これだとユーザーは何を選んでいるのか分からなくなりそうで、
どうもユーザーが混乱してしまうような気がしてなりません。

Hongliangさん
> Vista 以降限定で良いなら、IFileOpenDialog を使用できますね。FOS_PICKFOLDERS を使えばフォルダ選択が可能です。

一応、対象OSはXP以降を考えております(XPを使っているユーザーは結構いらっしゃいます)ので、
この方法の実現は残念ながら困難のようです。

もう少しシステム要件として別案を考えたいと思います。
もしいいアイディアがございましたら、また宜しくお願い申し上げます。

引用返信 編集キー/
■62331 / inTopicNo.6)  Re[4]: フォルダ選択ダイアログについて
□投稿者/ Azulean (851回)-(2011/10/03(Mon) 22:24:42)
No62328 (竜馬1989 さん) に返信
> ただ、費用対効果を考えると、この方法を採用することには躊躇します。

ないものはないのですから、我慢するか、作り出すか、あるいはコンポーネント・ライブラリを探して買うかのどれかになるのは仕方ないと思います。
(我慢する = わかりづらいのを容認する、あるいはショートカットをたどれないなどの不都合を容認する)

> おそらくOpenFileDialogのCheckFileExistsプロパティをFalseにするのだと思いますが、
> そのようにして検証を行ってみましたが、これだとユーザーは何を選んでいるのか分からなくなりそうで、
> どうもユーザーが混乱してしまうような気がしてなりません。

Visual Studio もフォルダーの選択でこういった使い方していますね。
もっとも、わかりづらいのは変わりませんが。
引用返信 編集キー/
■62340 / inTopicNo.7)  Re[5]: フォルダ選択ダイアログについて
□投稿者/ 竜馬1989 (11回)-(2011/10/04(Tue) 12:56:30)
Azuleanさん、コメントありがとうございます。

>>ただ、費用対効果を考えると、この方法を採用することには躊躇します。
>
> ないものはないのですから、我慢するか、作り出すか、あるいはコンポーネント・ライブラリを探して買うかのどれかになるのは仕方ないと思います。

全くその通りで、今回は簡単に対応できないならば、手をかけて対応するまでもない、という方向で進めています。

とりあえず、何か情報があれば書き込み頂けるよう、解決済みのチェックはつけないでおきます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -