Page3■コンテナ[ツールボックス]の[コンテナ]タブにあるコントロール群がほかのコントロールと違うのは、自分自身の領域内に別のコントロールを配置してグループ化するためのものだということである。コンテナにコントロールを配置するには、コントロールをドラッグしてきてコンテナ領域でドロップすればよい。[ツールボックス]からだけではなく、すでにフォーム上に配置してあるコントロールをドラッグしてきてもコンテナに配置できる。VB6までは、フォーム上に配置したコントロールをコンテナに配置するときには、コントロールをコンテナにカット&ペーストしなければならなかった。それに比べて非常に使いやすい操作性を実現している。●FlowLayoutPanelコントロールFlowLayoutPanelコントロール(以下、FlowLayoutPanel)は配置したコントロールを水平または垂直方向に整列させるコントロールだ。FlowLayoutPanelにコントロールをドラッグ&ドロップすると、FlowLayoutPanelのFlowDirectionプロパティの値に応じて強制的に整列が行われる。●GroupBoxコントロールGroupBoxコントロール(以下、GroupBox)は、ガイドラインでは「グループ・ボックス」として規定されているコントロールで、関連する複数のコントロールをラベル付きの四角い枠で囲むUI(図12参照)を作成したいときに使用する。GroupBoxを使ったデザインでGroupBoxの中にGroupBoxが配置されたデザインを見かけることがあるが、デザインガイドによれば「GroupBoxの中にGroupBoxは配置しないように」と規定されている。GroupBoxを入れ子にするのではなく、コントロール間の余白を調整してGroupBox内のコントロールの関連性を示すのがよいとされている。●PanelコントロールPanelコントロール(以下、Panel)は、関連する複数のコントロールをグループ化するときに使用する。GroupBoxと異なるのは、キャプションがなかったり、囲み線を非表示にしたりできる点だ。実行時のPanelは(デフォルトでは)囲み線がないので、グループ化している範囲が不明確だ。そのため、視覚的にグループ化するときには使えない。実際の開発でPanelを使うのは、フォームの最下行にPanelを配置(=Dockプロパティに「Buttom」を設定)し、そこにコマンド用のButtonコントロールを配置しておき、フォームの上部にはDataGridViewコントロールなどを全表示(=Dockプロパティを「Fill」を設定)するデザインを実現するようなときだろう(図13参照)。このようにデザインすれば、フォームの大きさを変えてもコマンド用のButtonコントロールの配置領域を保つことができる。●SplitContainerコントロールSplitContainerコントロール(以下、SplitContainer)は2分割した領域を管理するのに使用する。Windowsフォーム用テンプレートに学ぶ画面の作り方」の「『エクスプローラーフォーム』テンプレート」にて取り上げているのでそちらを参照してほしい。●TabControlコントロールTabControlコントロール(以下、TabControl)は、ガイドラインでは「タブ」として規定されているコントロールで、関連する情報を個別ページにまとめたUIを作成したいときに使用する。TabControlの例TabControlのタブは水平タブと垂直タブがある(図15参照)。タブが7個以下の場合は水平タブとして横にタブが並ぶようにして、タブが8個以上の場合は垂直タブを使用して縦にタブが並ぶようなデザインがガイドラインでは推奨されている。これは、水平タブでタブを多数配置するとタブの横スクロールが必要になるが横スクロールは分かりづらいという評価に基づくものだ。水平タブ(左)と垂直タブ(右)しかし、残念ながらTabControlでは垂直タブでスクロールが行えないため、ガイドラインの推奨内容を実現できない*1。よって、TabControlを使うのであれば水平タブ前提の方がまだデザイン的には洗練されていると思う。オーナー・ドロー(=独自のコントロールの描画)を駆使すれば可能かもしれないが、技術レベルが本連載の範囲から逸脱すると思われるので、オーナー・ドローでスクロール付き垂直タブが実現できるかは、筆者は調査していない。TabControlもGroupBoxと同様に「入れ子にして使用しないように」とガイドラインに規定されている。●TableLayoutPanelコントロールTableLayoutPanelコントロールは、HTMLの<table>タグのようにコントロールの中を行と列で碁盤の目のように区切り、それぞれのマス目にコントロールを配置するために使用する。スクリーン』テンプレート」にて取り上げているのでそちらを参照してほしい。■まとめWindowsフォーム用コントロールの2回目となる今回は、メニュー、ツールバー、ダイアログ、コンテナなど、使い方を知っていると一味違うデザインを実現できるコントロールを中心に取り上げた。前回紹介したコモン・コントロールと比べると多少地味なコントロールが多いが、“使わず嫌い”で使わずにいるのではなく、効果的に使っていきたいコントロールも多いので、ぜひ活用してほしい。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。