WinExplorerBar コントロールは、通常グループ を構成する項目 の代わりに Windows Forms コントロールの使用をサポートします。グループの Style プロパティを ControlContainer に設定すると、そのグループは WinForms コントロールをホストできるようになります。このスタイルを選択した場合、UltraWinExplorerBar は子 ControlContainer コントロールを自動的に作成し、グループの領域全体を埋めるように ControlContainer コントロールを配置します。グループ内の既存の項目はすべて、このコンテナ コントロールの背後に完全に隠れてしまうため、アクセスできなくなります。
UltraWinExplorerBar のグループでコントロールをセットアップする最も簡単な方法は、デザインタイムにグループを作成し、Windows Formsの場合と同様に、Visual Studio のツールボックスからそのグループの中に直接コントロールを配置することです。
デザインタイムにコントロール コンテナ グループをセットアップする手順の簡単な要約を次に示します(デザインタイムにグループを追加する方法の詳細な説明は、 「デザインタイムにグループと項目を追加」を参照してください。)
Visual Studio で新しい Windows Application プロジェクトを作成します。
UltraWinExplorerBar を含む「ツールボックス」タブを選択します(ツールボックスに UltraWinExplorerBar がない場合は、ツールボックスにコントロールを追加します)。ツールボックスの項目をダブルクリックして、フォームにコントロールを追加します。
コントロールのコンテキスト メニューを表示して [UltraExplorerBar デザイナ…] を選択するか、またはエレメントを選択してプロパティ シートの下部ペインにある [UltraExplorerBar デザイナ…] リンクをクリックします。[UltraExplorerBar デザイナ] ユーティリティが表示されます。[グループと項目] タブがすでに選択されています。選択されていない場合は選択してください。
[グループの追加] ボタンをクリックし、エレメントに新しいグループを追加します。新しく追加したグループのプロパティがダイアログの右側に表示されます。
プロパティ ペインの Settings プロパティをダブルクリックして展開します。Style プロパティが表示されるまで下にスクロールします。
Style プロパティをクリックして選択し、使用可能なオプションのリストから ControlContainer を選択します。
[閉じる] をクリックしてダイアログを閉じ、変更を適用します。グループ ヘッダが表示され、コンテナ コントロール領域がコントロールに追加されます。
グループ ヘッダの真下のコントロール コンテナ領域をクリックします。コントロール コンテナの範囲を示す境界線が表示されます。この境界線を下端からサイズ変更することで、コントロール領域のサイズを変更できます。
テキスト ボックスなどの WinForms コントロールをツールボックスから選択します。コントロール コンテナ領域の中にコントロールを描画します。コントロールを描画したら、そのコントロールの境界線がハイライト表示され、コントロールのプロパティが変更可能になります。コントロール コンテナの範囲内でコントロールをドラッグしたり、サイズ変更したりすることもできます。
グループ ヘッダをクリックします。グループが縮小され、配置したコントロールが非表示になります。
ランタイムにコントロールをグループのコンテナ コントロールに追加することもできます。そのためには、グループのコンテナ コントロールを取得してから、コントロールの親をコンテナに変更する必要があります。次のコードはこのプロセスを示しています。ここでは、コントロール内に、Style が ContainerControl に設定されたグループがひとつあり、TextBox1 という名前のテキスト ボックスがフォーム上にすでに存在しているとします。
Visual Basic の場合:
Private Sub CreatingaControlContainerGroup_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Me.TextBox1.Parent = Me.UltraExplorerBar1.Groups(0).Container ' コントロールがコンテナの範囲内に表示されるように、 ' コントロールの位置を変更します。 Me.TextBox1.Location = New Point(0, 0) End Sub
C# の場合:
private void CreatingaControlContainerGroup_Load(object sender, System.EventArgs e) { this.textBox1.Parent = this.ultraExplorerBar1.Groups[0].Container; // コントロールがコンテナの範囲内に表示されるように、 // コントロールの位置を変更します。 this.textBox1.Location = new Point(0, 0); }
同様のプロセスに従って、コントロールをグループに追加する前にコードによってコントロールを作成できます。こうすれば、テキスト ボックスをフォームに配置する必要がなくなります。