ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する - C#
Windows API Code Packに含まれるExplorerBrowserControlを用いてエクスプローラスタイルのファイルブラウザを実装します。
事前準備
Windows API Code Packアセンブリの追加
[ソリューションエクスプローラ]からプロジェクトの[参照設定]ノードを選択し、右クリックでポップアップメニューを表示し[参照の追加]メニューを選択します。
[参照マネージャー]ダイアログボックスが表示されます。ダイアログ下部の[参照]ボタンを押します。下図の[参照するファイルの選択]ダイアログボックスが表示されますので、Windows API Code Packの"Microsoft.WindowsAPICodePack.dll"と"Microsoft.WindowsAPICodePack.Shell.dll"を選択します。選択後[追加]ボタンを押します。
[参照マネージャー]にアセンブリが追加できました。[OK]ボタンを押して[参照マネージャー]を閉じます。
ツールボックスの設定
ツールボックスで右クリックしポップアップメニューを表示します。メニューの[アイテムの選択]を選択します。
[ツールボックス アイテムの選択]ダイアログボックスが表示されます。ダイアログ右下の[参照]ボタンをクリックします。ファイル選択ダイアログが表示されるので、"Microsoft.WindowsAPICodePack.Shell.dll"を選択します。
"CommandLink"コンポーネントと"ExplorerBrowser"コンポーネントが追加されました。[OK]ボタンを押します。
ツールボックスに"CommandLink"コンポーネントと"ExplorerBrowser"コンポーネントが表示されます。
UIの作成
フォームに"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"を指定しているため、デスクトップが表示されます。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用