はじめに
Visual Studioのツールボックスは、コンポーネントのアイコンをカテゴリごとにわけて折りたたんだり展開したりすることができる便利な機能です。このようなツールボックス風ツールバーをアプリケーションに組み込むことができたら、よりユーザーフレンドリーなGUIを作ることができますよね。
PowerTools Menus&Toolbars for .NETのC1OutBarを使うと、このVisual Studioのツールボックスのようなツールバーを実装することができます。
対象読者
Visual Basic 2005、Visual C# 2005を使ってプログラムを作ったことのある人。
必要な環境
Visual Basic 2005またはVisual C# 2005、Visual Studio 2005でプログラムが作れる環境。
プログラム実行時の注意事項
本稿の実行ファイル(バイナリファイル)を動かすには、zipファイルに同梱してある以下のファイルが必要になります。
- C1.Win.C1Command.2.dll…C1Command コントロール(.NET Framework 2.0用)
このファイルを、実行プログラムと同じフォルダに格納します。また、.NET Framework 2.0から追加されたクラスやメンバを使用しているので、.NET Framework 2.0がインストールされていることが必須条件です。
コンポーネントのインストール
はじめてPowerTools Menus&Toolbars for .NETを使用する方は、C1OutBarコンポーネントをインストールし、プロジェクトに追加する必要があります。
インストーラは、グレープシティのWebページからダウンロードできますので、ここからダウンロードしてインストールしてください。製品ページ左側の[ダウンロード]-[トライアル版]をクリックし、ダウンロード方法(FTPまたはHTTP)を選択すれば入手できます。ファイルはLZH形式で圧縮されています。
有償のコンポーネントですが、プロダクトキーを入力せずにインストールすることで、トライアル版として使用できます。制限事項などの詳細については、インストーラに同梱されているリリースノートを参照してください。
コントロールの追加
PowerTools Menus&Toolbars for .NETをインストールしたら、ツールボックスに専用のタブを作成し、C1OutBarのコンポーネントを追加します。追加するコンポーネントは、[.NET Frameworkコンポーネント]の[名前空間]が「C1.Win.C1Command」で始まる名前空間のコンポーネント「C1OutBar」です。
GUIの作成
サンプルアプリケーションのGUIは、以下のような構成になっています。
コントロールの配置
GUIは、C1OutBarコンポーネントとWebBrowserコントロールの2つをフォームに配置します。それぞれDockプロパティを次のように配置します。
コンポーネント | Dockプロパティの値 |
C1OutBar | Left |
WebBrowser | Fill |
また、ImageListとTimerコントロールを配置します。ImageListコントロールには、次のアイコンとGIFイメージを組み込みます。
ファイル名 | インデックス |
NextArrow.gif | 0 |
PreviousArrow.gif | 1 |
EARTH.ICO | 2 |
FACE02.ICO | 3 |
FACE01.ICO | 4 |
C1OutBarコンポーネントの設定
C1OutBarコンポーネントは、Outlookスタイルのコンテナ/タブコントロールです。このコンポーネントには、ページをいくつも持つことができ、ページごとにテキストやアイコンを持ったコマンドボタン(コマンドリンクと呼びます)やメニューを組み込むことができます。これらは、スマートデザイナを使って組み込むことができます。
ここではページのみをデザイナで追加し、コマンドリンクはコードから行うようにします。ページを追加するには、C1OutBarタスクボタンをクリックし、[空ページの追加]ボタンを押して追加します。
各ページは、C1OutPageというオブジェクトとして操作します。ページのタイトルはデザイナまたはプロパティウィンドウの[Text]プロパティで変更します。アイコンイメージを設定するのであれば、プロパティウィンドウの[Images]プロパティで設定します。
ImageListコントロールのアイコンを使いたい場合は、C1OutBarコンポーネントの[ImageList]プロパティに、ImageListコントロールを設定します。
また、C1ToolBar
オブジェクトやC1Command
オブジェクトでもImageListコントロールのアイコンやイメージを使うのであれば、C1CommandHolder1コンポーネントの[ImageList]プロパティに、ImageListコントロールを設定します。
後は、各ページ(C1ToolBar)の次のプロパティを設定して外観を整えます。
オブジェクト | プロパティ | 設定値 |
C1OutPage1 | ImageIndex | 3 |
Text | 契約会社へのリンク | |
C1OutPage2 | Text | 操作コマンド |
最後に、C1OutBarコントロールの[LookAndFeel]プロパティを「Office2003」に設定します。このプロパティは、ページのボタンの形状を設定するプロパティです。「C1OutBar」「C1OutPage」「C1CommandHolder」と3つのオブジェクトのプロパティを操作しますので、間違えないようにしてください。
ところで、フォームデザイナに「C1CommandHolder」というコンポーネントが組み込まれています。このコンポーネントはツールボックスから選んで配置していないのに、知らない間に勝手に配置されています。
実は、C1CommandHolderコンポーネントは、フォームごとに1つだけ使用できるオブジェクトで、フォームにメニューまたはツールバーが追加されると必ず自動的に作成されます。そして、フォーム内で定義されたC1Command
オブジェクトを保持する働きをします。