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

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

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

フォルダを選択するダイアログ

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

■86037 / inTopicNo.1)  フォルダを選択するダイアログ
  
□投稿者/ ヤンゴン (1回)-(2017/12/13(Wed) 20:08:54)

分類:[.NET 全般] 


フォルダの選択ダイアログの表示の仕方に関してですが
ここにコードが書かれてあります。

https://dobon.net/vb/dotnet/form/folderdialog.html

しかしこの方法だと、ファイルパスをコピペで貼り付けることができないため


http://officetanaka.net/excel/vba/tips/tips39.htm

ここにあるようなダイアログを使いたいと考えています。

しかし、この方法はVBAのためVB.NETでは使うことができませんでした。

どうすれば良いでしょうか?





引用返信 編集キー/
■86040 / inTopicNo.2)  Re[1]: フォルダを選択するダイアログ
□投稿者/ ぶなっぷ (150回)-(2017/12/14(Thu) 09:48:02)
上の例で、選択したフォルダを

    '選択されたフォルダを表示する
    Console.WriteLine(fbd.SelectedPath)

としてコンソールに表示していますが、これをTextBlockとかに
表示するようにすれば、コピペできるようになりますが、
そういう話ではない?

引用返信 編集キー/
■86041 / inTopicNo.3)  Re[1]: フォルダを選択するダイアログ
□投稿者/ Jitta (346回)-(2017/12/14(Thu) 10:10:48)
No86037 (ヤンゴン さん) に返信
>
> フォルダの選択ダイアログの表示の仕方に関してですが
> ここにコードが書かれてあります。
>
> https://dobon.net/vb/dotnet/form/folderdialog.html
>
> しかしこの方法だと、ファイルパスをコピペで貼り付けることができないため
>
>
> http://officetanaka.net/excel/vba/tips/tips39.htm
>
> ここにあるようなダイアログを使いたいと考えています。
>
> しかし、この方法はVBAのためVB.NETでは使うことができませんでした。
>
> どうすれば良いでしょうか?

上のリンクの最初にあるのを使いたいってことですかね。
残念ながら私はわかりません。
私は、下のダイアログで選択したものをTextBoxに表示させています。
選択してすぐにフォルダを使うのではなく、もうワンアクション置いているので、
選択したフォルダをコピーすることも、エクスプローラからコピーしたフォルダをペーストすることもできるようにしています。
引用返信 編集キー/
■86045 / inTopicNo.4)  Re[1]: フォルダを選択するダイアログ
□投稿者/ furu (150回)-(2017/12/14(Thu) 12:43:31)
No86037 (ヤンゴン さん) に返信

7年前に同様の質問(No54830)をさせていただきましたが
駄目でしたね。

>VSの「新しいプロジェクト」ダイアログの
>「参照(B)...」ボタンで表示される
>「プロジェクトの場所」ダイアログのようなのを
>希望しています。

引用返信 編集キー/
■86046 / inTopicNo.5)  Re[2]: フォルダを選択するダイアログ
□投稿者/ とっちゃん (477回)-(2017/12/14(Thu) 12:55:42)
No86045 (furu さん) に返信
> ■No86037 (ヤンゴン さん) に返信
>
> 7年前に同様の質問(No54830)をさせていただきましたが
> 駄目でしたね。
>
> >VSの「新しいプロジェクト」ダイアログの
> >「参照(B)...」ボタンで表示される
> >「プロジェクトの場所」ダイアログのようなのを
> >希望しています。
>
C++/CLI で作ったものでいいのなら、該当部分だけですがソースも公開してます。

書いたのは 2013 年なので割と最近w


[C++/CLI]フォルダ選択ダイアログ(コアルーチン)
http://blogs.wankuma.com/tocchann/archive/2013/04/22/327859.aspx

フォルダ選択ダイアログを、Form から呼び出す
http://blogs.wankuma.com/tocchann/archive/2013/04/26/327864.aspx

フォルダ選択ダイアログを WPF アプリから呼び出す
http://blogs.wankuma.com/tocchann/archive/2013/04/27/327866.aspx


引用返信 編集キー/
■86048 / inTopicNo.6)  Re[1]: フォルダを選択するダイアログ
□投稿者/ 魔界の仮面弁士 (1502回)-(2017/12/14(Thu) 13:40:37)
No86037 (ヤンゴン さん) に返信
> http://officetanaka.net/excel/vba/tips/tips39.htm
> ここにあるようなダイアログを使いたいと考えています。
> しかし、この方法はVBAのためVB.NETでは使うことができませんでした。

Microsoft.WindowsAPICodePack.Shell.dll を参照設定し、
CommonOpenFileDialog クラスの IsFolderPicker プロパティを True にすれば OK かと。



Imports Microsoft.WindowsAPICodePack.Dialogs
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Using dlg As New CommonOpenFileDialog()
            dlg.IsFolderPicker = True
            If dlg.ShowDialog() = CommonFileDialogResult.Cancel Then
                Return
            End If
            TextBox1.Text = dlg.FileName
        End Using
    End Sub
End Class

引用返信 編集キー/
■86057 / inTopicNo.7)  Re[2]: フォルダを選択するダイアログ
□投稿者/ ヤンゴン (2回)-(2017/12/14(Thu) 20:42:14)
No86048 (魔界の仮面弁士 さん) に返信
参照設定で
Microsoft.WindowsAPICodePack.Shell.dll
というのが見当たらないのですが
別途自分でインストールする必要がありますか?

https://www.nuget.org/packages/WindowsAPICodePack-Shell/



引用返信 編集キー/
■86058 / inTopicNo.8)  Re[3]: フォルダを選択するダイアログ
□投稿者/ 魔界の仮面弁士 (1504回)-(2017/12/14(Thu) 23:30:05)
No86057 (ヤンゴン さん) に返信
> Microsoft.WindowsAPICodePack.Shell.dll
> というのが見当たらないのですが

Windows API CodePack は Microsoft 製のライブラリでしたが、
現在はデッドリンクとなっており、有志によって nuget で再公開されています。

https://blogs.msdn.microsoft.com/ttanaka/2010/10/17/windows-api-code-pack-110/
https://social.msdn.microsoft.com/Forums/sqlserver/ja-JP/caa5a510-85fa-4ab7-8647-1bec99279706/windowsapicodepackshellnuget


> 別途自分でインストールする必要がありますか?
nuget を使います。

Visual Studio メニューの「nuget パッケージマネージャ」から、
『Windows API CodePack Shell』を検索して取り込むことで
自動的にダウンロードされ、プロジェクトに組み込まれます。

実際に使う際には、Microsoft.WindowsAPICodePack.Shell.dll だけでなく
Microsoft.WindowsAPICodePack.dll も参照設定する必要がありますが、
nuget を使えば、そうした依存ファイルも自動的に組み込まれますし、
より新しいバージョンがあるかどうかの検査もしてくれます。


もし、nuget パッケージマネージャが見つからない場合には、
お使いの Visual Studio のバージョンおよびエディションを教えてください。


古いバージョンだと、メニューに nuget パッケージマネージャが無いことがありますが、
その場合は PowerShell コマンド版となる NuGet Package Manager を使ってダウンロードします。
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManager



なお nuget 上には、同様のパッケージが複数存在しています。ご注意ください。

----

(1) [WindowsAPICodePack-Shell] (Aybe 氏)
 https://www.nuget.org/packages/WindowsAPICodePack-Shell/

→最新版は 1.1.1 です。下記のファイルが参照設定されます。
 ・Microsoft.WindowsAPICodePack.Shell.dll
 ・Microsoft.WindowsAPICodePack.dll
 ※今回はこのパッケージがお奨めです。
 ※パッケージバージョンは 1.1.1 ですが、dll バージョンはいずれも 1.1.0.0 です。
 ※本パッケージ導入後、[WindowsAPICodePack-Core]パッケージ 1.1.2 を使うことで
  Microsoft.WindowsAPICodePack.dll を 1.1.2.0 に更新することができます。


(2) [Microsoft.WindowsAPICodePack-Shell] (acdvorak 氏)
 https://www.nuget.org/packages/Microsoft.WindowsAPICodePack-Shell/

→最新版は 1.1.0 です。下記のファイルが参照設定されます。
 ・Microsoft.WindowsAPICodePack.ShellExtensions.dll
 ・Microsoft.WindowsAPICodePack.Shell.dll
 ・Microsoft.WindowsAPICodePack.dll
 ※今回の要件では、ShellExtensions は冗長です。


(3) [Windows7APICodePack-Shell] (t_chandrakanth 氏)
 https://www.nuget.org/packages/Windows7APICodePack-Shell/

→最新版は 1.1.0 です。下記のファイルが参照設定されます。
 ・Microsoft.WindowsAPICodePack.Shell.dll
 ・Microsoft.WindowsAPICodePack.dll
 ※.xml ファイルが付属しないため、コーディング時に IntelliSense に説明文が表示されません。
 ※.pdb ファイル付でパッケージ化されています。


(4) [WindowsAPICodePack] (pwagner 氏)
 https://www.nuget.org/packages/WindowsAPICodePack/
→最新版は 1.1.0 です。下記のファイルが参照設定されます。
 ・Microsoft.WindowsAPICodePack.ShellExtensions.dll
 ・Microsoft.WindowsAPICodePack.Shell.dll
 ・Microsoft.WindowsAPICodePack.Sensors.dll
 ・Microsoft.WindowsAPICodePack.ExtendedLinguisticServices.dll
 ・Microsoft.WindowsAPICodePack.dll
 ※.xml ファイルが付属しないため、コーディング時に IntelliSense に説明文が表示されません。
 ※今回の要件では、ShellExtensions、Sensors、ExtendedLinguisticServices の 3 ファイルは冗長です。


(5) [WindowsAPICodePackShell] (pwagner 氏)
 https://www.nuget.org/packages/WindowsAPICodePackShell/

→最新版は 1.1.0 です。下記のファイルが参照設定されます。
 ・Microsoft.WindowsAPICodePack.Shell.dll
 ※上記だけでは動作しません。別途、Microsoft.WindowsAPICodePack.dll が必要です。
 ※.xml ファイルが付属しないため、コーディング時に IntelliSense に説明文が表示されません。
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ