Windows API Code Packに含まれるExplorerBrowserControlを用いてエクスプローラスタイルのファイルブラウザを実装します。
プロジェクトを作成します。.NET のWindows Formアプリケーションを作成します。
Windows API Code Packをインストールします。インストール手順はこちらの記事を参照してください。
下図のフォームを作成します。ボタンとパネルを1つずつ配置します。
以下のコードを記述します。
using Microsoft.WindowsAPICodePack.Controls.WindowsForms;
using Microsoft.WindowsAPICodePack.Controls.WindowsPresentationFoundation;
using Microsoft.WindowsAPICodePack.Shell;
namespace FileExplorerDemo
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Microsoft.WindowsAPICodePack.Controls.WindowsForms.ExplorerBrowser eb = new Microsoft.WindowsAPICodePack.Controls.WindowsForms.ExplorerBrowser();
eb.Parent = panel1;
eb.Dock = DockStyle.Fill;
eb.Navigate((ShellObject)KnownFolders.Desktop);
}
}
}
ボタンをクリックすると以下のコードを実行します。
はじめに、ExplorerBrowser
オブジェクトを作成します。作成後、Parentプロパティにpanel1を指定します。
この設定により、ExplorerBrowserコントロールはpanel1内に表示されます。
続いて、DockプロパティをFill
に設定することで、ExplorerBrowserコントロールがpanel1の大きさ名いっぱいに広がって表示されます。
最後にNavigateメソッドを実行し、ExplorerBrowserコントロールにコンテンツを表示します。
Microsoft.WindowsAPICodePack.Controls.WindowsForms.ExplorerBrowser eb = new Microsoft.WindowsAPICodePack.Controls.WindowsForms.ExplorerBrowser();
eb.Parent = panel1;
eb.Dock = DockStyle.Fill;
eb.Navigate((ShellObject)KnownFolders.Desktop);
プロジェクトを実行します。下図のウィンドウが表示されます。
ボタンをクリックします。エクスプローラスタイルのファイルブラウザが表示できます。
[ソリューションエクスプローラ]からプロジェクトの[参照設定]ノードを選択し、右クリックでポップアップメニューを表示し[参照の追加]メニューを選択します。
[参照マネージャー]ダイアログボックスが表示されます。ダイアログ下部の[参照]ボタンを押します。下図の[参照するファイルの選択]ダイアログボックスが表示されますので、Windows API Code Packの"Microsoft.WindowsAPICodePack.dll"と"Microsoft.WindowsAPICodePack.Shell.dll"を選択します。選択後[追加]ボタンを押します。
[参照マネージャー]にアセンブリが追加できました。[OK]ボタンを押して[参照マネージャー]を閉じます。
ツールボックスで右クリックしポップアップメニューを表示します。メニューの[アイテムの選択]を選択します。
[ツールボックス アイテムの選択]ダイアログボックスが表示されます。ダイアログ右下の[参照]ボタンをクリックします。ファイル選択ダイアログが表示されるので、"Microsoft.WindowsAPICodePack.Shell.dll"を選択します。
"CommandLink"コンポーネントと"ExplorerBrowser"コンポーネントが追加されました。[OK]ボタンを押します。
ツールボックスに"CommandLink"コンポーネントと"ExplorerBrowser"コンポーネントが表示されます。
フォームに"ExplorerBrowser"コンポーネントを配置します。
プロジェクトを実行します。下図のウィンドウが表示されます。まだ何も表示されていません。
"ExplorerBrowser"のAnchorプロパティを設定します。
Right,Bottomのアンカーも有効にします。
下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Shell;
namespace ExplorerDemo
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void FormMain_Shown(object sender, EventArgs e)
{
explorerBrowser1.Navigate((ShellObject)KnownFolders.Desktop);
}
}
}
private void FormMain_Shown(object sender, EventArgs e)
{
explorerBrowser1.Navigate((ShellObject)KnownFolders.Desktop);
}
ExplorerBrowserのNavigateメソッドを呼び出してブラウジングを開始します。上記の例では"KnownFolders.Desktop"を指定しているため、デスクトップが表示されます。
プロジェクトを実行します。下図のウィンドウが表示されます。