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を愛用
掲載日: 2012-08-28
iPentec all rights reserverd.