ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する

Windows API Code Packに含まれるExplorerBrowserControlを用いてエクスプローラスタイルのファイルブラウザを実装します。

.NET の場合

事前準備

プロジェクトの作成

プロジェクトを作成します。.NET のWindows Formアプリケーションを作成します。

Windows API Code Pack のインストール

Windows API Code Packをインストールします。インストール手順はこちらの記事を参照してください。

プログラム

UI

下図のフォームを作成します。ボタンとパネルを1つずつ配置します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像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);


補足
.NET Frameworkでは ツールパレットにコントロールを追加して、デザイン時にExplorerBrowserコントロールをフォームに配置しましたが、 .NETでは、試してみた限りでは、ツールパレットに追加できないため、コード上でコントロールを作成する処理を実装しています。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像2

ボタンをクリックします。エクスプローラスタイルのファイルブラウザが表示できます。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像3
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像4

.NET Framework の場合

事前準備

Windows API Code Packアセンブリの追加

[ソリューションエクスプローラ]からプロジェクトの[参照設定]ノードを選択し、右クリックでポップアップメニューを表示し[参照の追加]メニューを選択します。
[参照マネージャー]ダイアログボックスが表示されます。ダイアログ下部の[参照]ボタンを押します。下図の[参照するファイルの選択]ダイアログボックスが表示されますので、Windows API Code Packの"Microsoft.WindowsAPICodePack.dll"と"Microsoft.WindowsAPICodePack.Shell.dll"を選択します。選択後[追加]ボタンを押します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像5

[参照マネージャー]にアセンブリが追加できました。[OK]ボタンを押して[参照マネージャー]を閉じます。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像6

ツールボックスの設定

ツールボックスで右クリックしポップアップメニューを表示します。メニューの[アイテムの選択]を選択します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像7

[ツールボックス アイテムの選択]ダイアログボックスが表示されます。ダイアログ右下の[参照]ボタンをクリックします。ファイル選択ダイアログが表示されるので、"Microsoft.WindowsAPICodePack.Shell.dll"を選択します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像8

"CommandLink"コンポーネントと"ExplorerBrowser"コンポーネントが追加されました。[OK]ボタンを押します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像9

ツールボックスに"CommandLink"コンポーネントと"ExplorerBrowser"コンポーネントが表示されます。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像10

UIの作成

フォームに"ExplorerBrowser"コンポーネントを配置します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像11

実行結果 (コード未実装時)

プロジェクトを実行します。下図のウィンドウが表示されます。まだ何も表示されていません。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像12

ExplorerBrowserのプロパティ設定

"ExplorerBrowser"のAnchorプロパティを設定します。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像13

Right,Bottomのアンカーも有効にします。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像14

コード

下記のコードを記述します。

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"を指定しているため、デスクトップが表示されます。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
ExplorerBrowserControlを用いてエクスプローラのファイルブラウザーを実装する:画像15

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2012-08-28
Copyright © 1995–2025 iPentec all rights reserverd.