ツールボックスのよもやま。

このポストはC# Advent Calendar 2016の12月17日分です。

毎年いろんなポストでC# Advent Calendarには参加していたのですが、今年ほど書くことに困ったことはありませんでした(^^;

既にカレンダーにある記事のバリエーションも多く、なかなか既に多くファンが多いC#関連で興味を引くようなポストは書けなさそうなので、ちょっとしたTipsなのですが、Visual Studioのツールボックスについて書いてみたいと思います。

まずは基本から…。

 

ツールボックスの基本

ツールボックスは、開発で利用する部品の格納庫のような役割を担うウインドウです。

Visual Studioのワークスペース上に表示されている内容に応じて、ドラッグアンドドロップ操作で部品を格納したり、格納されている部品を配置することができます。

 

たとえば、ワークスペース上にWindowsフォームアプリのUIデザイナーを開いた状態にすると、ツールボックスにはWindowsフォーム上に配置することができるコントロールの一覧が表示されます。

ツールボックスが非表示の場合、キーボードショートカットCtrl+Alt+Xでツールボックスを開くことができます。

ツールボックスのウインドウ内はタブで分類されていますので、ツールボックス内の部品をワークスペースに配置する場合は、必要な部品が格納されているタブから部品をドラッグアンドドロップしてデザイナーに配置します。

 

 

ツールボックスの表示切替

ツールボックスは既定ではリストビュー表示となっており、各タブを開くと図 2のようにアイコンと部品名称をリスト表示します。

ツールボックスのタブ内はリストビュー表示以外にも、アイコン表示にすることができます。 

ツールボックス内にあるタブを右クリックするとコンテキストメニューに「リストビュー」があり、チェックされていることが確認できます。

チェックを外すとシンプルなアイコン表示となりますので、格納されている部品が多数ある場合は一覧性が高くなります。

 

ユーザーコントロールはツールボックスに自動的に配置される

 

Windowsフォームアプリではソリューション内に自分が作成したユーザーコントロールがある場合、自動的にツールボックス内に配置されます。(このあたりの挙動はWPFやUWPなどでも同じですね。)

図 5はプロジェクトにユーザーコントロール「UserControl1.cs」を追加して、Form1.csのデザイナー表示を行った様子です。

プロジェクト内から利用できるコンポーネントは自動的にツールボックスにも追加されて、デザイナーから表示することができます。

ツールボックスに表示するアイコンは既定のアイコンが表示されますが、アイコンを変更する場合は、定義しているクラスに対してToolboxBitmap属性を付与することでアイコン画像を指定することができます。

 

ツールボックス内の検索や表示順の変更

 

ツールボックスの上部には検索ボックスがあり、キーワードを入力するとツールボックス内を検索することが可能です。

 

ツールボックスの表示順はドラッグアンドドロップで移動させることもできますし、コンテキストメニューから「アイテムを選択」することで表示するアイテムを選択できます。

 

ツールボックス内のタブは、コンテキストメニューから「タブを追加」・「タブを削除」・「タブを変更」によってタブをコントロールできるので、「アイテムの選択」と併せて利用することで、ツールボックス内を自由にカスタマイズすることができます。

 

コードエディタでツールボックスを利用

 

ツールボックスはコードエディタからも利用できます。

繰り返し利用するコードをコードエディタ上で範囲選択し、ツールボックスにドラッグアンドドロップします。

あとは、ツールボックスから任意のコード上にドラッグアンドドロップすればツールボックスに格納したコードを貼り付けすることができます。

ツールボックス上に格納されたテキストはコンテキストメニューから削除や並び替え、項目名の変更を行うことができます。

繰り返し追加しないといけないコードなどがある場合や、勉強会などでDemoを行う場合にはとても使える方法なのでよろしければご活用ください(^^)

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

投稿者: Hiroyuki Mori

極東IT-Engineersの代表でMicrosoft MVP for Development Platform - Silverlightです。 普段は主にMSテクノロジ関連の開発、スピーカー、執筆などを行っています。