SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

Visual Studioのツールボックス風ツールバーを実装する

PowerTools Menus&Toolbars for .NET のC1OutBarを使ったWebブラウザの作成

  • このエントリーをはてなブックマークに追加

Visual Studioのツールボックスは、コンポーネントのアイコンをカテゴリごとにわけて折りたたんだり展開したりすることができる便利な機能です。このようなツールボックス風ツールバーをアプリケーションに組み込む方法を紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 Visual Studioのツールボックスは、コンポーネントのアイコンをカテゴリごとにわけて折りたたんだり展開したりすることができる便利な機能です。このようなツールボックス風ツールバーをアプリケーションに組み込むことができたら、よりユーザーフレンドリーなGUIを作ることができますよね。

 PowerTools Menus&Toolbars for .NETのC1OutBarを使うと、このVisual Studioのツールボックスのようなツールバーを実装することができます。

Visual Studioのツールボックスのように、コマンドを折りたたんだり展開したりすることができる
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」です。

「C1.Win.C1Command」で始まる名前空間のコンポーネント「C1OutBar」を追加する
「C1.Win.C1Command」で始まる名前空間のコンポーネント「C1OutBar」を追加する

GUIの作成

 サンプルアプリケーションのGUIは、以下のような構成になっています。

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
ImageListコントロールにアイコンとGIFイメージを組み込む
ImageListコントロールにアイコンとGIFイメージを組み込む

C1OutBarコンポーネントの設定

 C1OutBarコンポーネントは、Outlookスタイルのコンテナ/タブコントロールです。このコンポーネントには、ページをいくつも持つことができ、ページごとにテキストやアイコンを持ったコマンドボタン(コマンドリンクと呼びます)やメニューを組み込むことができます。これらは、スマートデザイナを使って組み込むことができます。

スマートデザイナによるコマンドリンクの組み込み
スマートデザイナによるコマンドリンクの組み込み
メニューの組み込み
メニューの組み込み

 ここではページのみをデザイナで追加し、コマンドリンクはコードから行うようにします。ページを追加するには、C1OutBarタスクボタンをクリックし、[空ページの追加]ボタンを押して追加します。

ページの追加
ページの追加

 各ページは、C1OutPageというオブジェクトとして操作します。ページのタイトルはデザイナまたはプロパティウィンドウの[Text]プロパティで変更します。アイコンイメージを設定するのであれば、プロパティウィンドウの[Images]プロパティで設定します。

 ImageListコントロールのアイコンを使いたい場合は、C1OutBarコンポーネントの[ImageList]プロパティに、ImageListコントロールを設定します。

C1OutBarコンポーネントのImageListプロパティに、ImageListコントロールを設定
C1OutBarコンポーネントのImageListプロパティに、ImageListコントロールを設定

 また、C1ToolBarオブジェクトやC1CommandオブジェクトでもImageListコントロールのアイコンやイメージを使うのであれば、C1CommandHolder1コンポーネントの[ImageList]プロパティに、ImageListコントロールを設定します。

 後は、各ページ(C1ToolBar)の次のプロパティを設定して外観を整えます。

オブジェクト プロパティ 設定値
C1OutPage1 ImageIndex 3
Text 契約会社へのリンク
C1OutPage2 Text 操作コマンド

 最後に、C1OutBarコントロールの[LookAndFeel]プロパティを「Office2003」に設定します。このプロパティは、ページのボタンの形状を設定するプロパティです。「C1OutBar」「C1OutPage」「C1CommandHolder」と3つのオブジェクトのプロパティを操作しますので、間違えないようにしてください。

LookAndFeelプロパティを「Office2003」に設定
LookAndFeelプロパティを「Office2003」に設定

 ところで、フォームデザイナに「C1CommandHolder」というコンポーネントが組み込まれています。このコンポーネントはツールボックスから選んで配置していないのに、知らない間に勝手に配置されています。

 実は、C1CommandHolderコンポーネントは、フォームごとに1つだけ使用できるオブジェクトで、フォームにメニューまたはツールバーが追加されると必ず自動的に作成されます。そして、フォーム内で定義されたC1Commandオブジェクトを保持する働きをします。

次のページ
コードでのコマンドリンクの作成 1

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1283 2008/08/20 13:34

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング