バージョン

使用するタブ コントロールの選択

バックグラウンド

Ultimate UI for Windows Forms は、WinTab および WinTabStrip の 2 つのタブ エレメントから選択できます。どちらのコントロールも共通の機能を持ち、タブベースのインタフェースをアプリケーションに提供するのに使用できます。どちらのコントロールを使用するかは、タブを表示するコンテキストによって決まります。

質問

  • プログラムの中で WinTab と WinTabStrip のどちらのエレメントを使用すればいいですか。

解決策

プログラムのオプション ダイアログのように、エレメントを機能に従ってグループ化する必要がある場合は、WinTab エレメントを使用します。データがバインドされた共通のコントロールセットを表示し、タブを使用してどのデータ レコードをコントロールに読み込むのかを選択できるようにする場合は、TabStrip を使用します。また、軽量なエレメントのほうがアプリケーションに適している場合にも、WinTabStrip を使用できます。WinTabStrip では、ユーザーによるタブのクリックに応答して、インタフェースを構成しているコントロールを管理するためのコードを提供します。そのため、より詳細な制御が可能です。

WinTabStrip はデータ バインディングを提供するエレメントで、タブ付きインタフェースが主な操作手段となるデータ駆動型アプリケーションのフロントエンドとして機能するように設計されています。このインタフェースは、いわゆるマニラ ファイル フォルダのシステムを情報管理用に再現したもので、各タブは同様または同一の情報のフォルダを表します。このシステムでは、タブ上に表示されるコントロールが、タブのすべてのインスタンスにわたって共有されます。インタフェースのエレメントは別のタブが選択されても変化せず、インタフェースに表示される情報のみが変化します。

これに対して WinTab エレメントは、新しいタブが選択されるたびに異なるインタフェース(この場合は WinForms コントロールの異なるセット)を表示するように設計されています。一連のコントロールを論理的にグループ化し、それらを最小限の画面領域でユーザーに表示する必要がある場合は、WinTab エレメントを使用します。

もう 1 つの選択条件として、タブ インタフェースの実装をどの程度制御する必要があるか、ということが挙げられます。WinTab エレメントでは完全な実装が提供されますが、場合によってはその完全性が制限されたり、特定のアプリケーションにとって過剰であったりすることがあります。WinTab エレメントではタブごとにコンテナを作成する必要があるため、それに伴う一定量のオーバーヘッドが発生します。一方、WinTabStrip は WinTab よりもずっと軽量なエレメントです。WinTabStrip では、タブの変更への応答やインタフェースの再設定を手動で行うという余分な作業が必要になりますが、それだけ制御できる範囲は広がります。