はじめに
TabPlus for .NET 2.0JのGcTabControlコントロールは、いろいろなタイプのタブページを提供するコントロールです。タブの形状の種類が豊富で「ExcelやVisual Studio、Windows XP風のタブを作成する」「タブを段差表示にする」「ドラッグ&ドロップでタブの移動を可能にする」など標準のタブコントロールにない機能を実装できます。
そこで、今回はプログラム実行中にタブの形状を変化させるプログラムを作りながら、機能を実装する方法を紹介します。
対象読者
Visual Basic 2005を使ってプログラムを作ったことのある人。
必要な環境
Visual Basic 2005またはVisual Studio 2005。
プログラム実行時の注意事項
本稿の実行ファイル(バイナリファイル)を動かすには、zipファイルに同梱してある以下のファイルが必要になります。
- GrapeCity.Win.TabPlus.v20.dll
- ja\GrapeCity.Win.TabPlus.v20.resources.dll
このファイルを、実行プログラムと同じフォルダに格納します。2.は、exeファイルのあるフォルダのサブフォルダ「ja」に配置されている必要があります。
また、.NET Framework 2.0から追加されたクラスやメンバを使用しているので、.NET Framework 2.0がインストールされていることが必須条件です。
GUIの作成
今回のプログラムは、フォームにGcTabControlコントロールを組み込み、後はVisual Basicの標準コントロールから、以下のコントロールを使用します。
- ColorDialog
- FontDialog
- GroupBox
- Button
- CheckBox
- RadioButton
- ComboBox
- NumericUpDown
コンポーネントのインストール
今回使用するTabPlus for .NET 2.0Jのインストーラは、グレープシティのWebページからダウンロードできます。製品ページ左側の[ダウンロード]-[トライアル版]をクリックし、ダウンロード方法([FTP]または[HTTP])を選択してください。ファイルはLZH形式で圧縮されています。
有償のコンポーネントですが、プロダクトキーを入力せずにインストールすることで、トライアル版として使用できます。トライアル版の試用期間はインストール後から60日間です。制限事項などの詳細については、インストーラに同梱されているリリースノートを参照ください。
コントロールの追加
TabPlus for .NET 2.0Jをインストールしたら、ツールボックスに専用のタブを作成し、TabPlus for .NET 2.0Jのコンポーネントを追加します。追加するコンポーネントは、[.NET Frameworkコンポーネント]の[名前空間]が「GrapeCity.Win.Input」のコンポーネントです。
フォームのデザイン
フォームには、GcTabControlコントロールの各種設定を行うための操作パネルを作成します。使い慣れているコントロールが多いと思うので、特に説明はしません。
GcTabControlコントロールは、複数段表示を分かりやすくするために、Item
プロパティでタブを多めに追加しておきます。
GcTabControlコントロールは、コントロール内に単独のタブページを表すGcTabPage
オブジェクトを持ちます。タブページごとの設定を変えるには、このGcTabPage
オブジェクトのプロパティを操作しますが、すべてのタブページに共通の設定を行う場合は、親のGcTabControlコントロールのプロパティを操作します。
各処理の作成(1/2)
GcTabControlコントロールの設定を実行するコードを組み込んでいきます。処理は、フォームに配置したGroupBoxコントロール単位で行います。
タブの方向
Alignment
プロパティを使って、タブが取り付く位置を変えることができます。設定値はTabAlignment
列挙体のメンバです。
Me.GcTabControl1.Alignment = TabAlignment.Top
メンバ名 | 説明 |
Bottom | タブはコントロールの下部に配置されています。 |
Left | タブはコントロールの左端に配置されています。 |
Right | タブはコントロールの右端に配置されています。 |
Top | タブはコントロールの上部に配置されています。 |
タブのスタイル
Appearance
プロパティを使って、タブのスタイルを変えることができます。設定値はTabAppearance
列挙体のメンバから選びます。
このプロパティを使うと、タブをExcelやWindows XP、Visual Studio 2005のような形状に変えることができます。
Me.GcTabControl1.Appearance = GrapeCity.Win.TabPlus.TabAppearance.Buttons
メンバ名 | 説明 |
Standard | 標準スタイルの外観 |
Classic | クラシックスタイルの外観 |
Square | 四角スタイルの外観 |
Buttons | ボタンスタイルの外観 |
CutCorner | 両角がカットされたスタイルの外観 |
CutLeftCorner | 左角がカットされたスタイルの外観 |
CutRightCorner | 右角がカットされたスタイルの外観 |
Rounded | 丸型スタイルの外観 |
Excel | Excelスタイルの外観 |
System | システムスタイルの外観 |
MdiChild | MDIスタイルの外観 |
VS2005 Visual | Studio 2005スタイルの外観 |
Skin | カスタムスキンスタイルの外観 |
枠線の設定と色の変更
タブページのスタイルを標準にし、3Dではなくフラットスタイルにすると、枠線の色を変えることができます。
フラットスタイルにするには、Flat
プロパティをTrueに設定します。
cTabControl1.Flat = True
また、枠線の色はOutLineColor
プロパティに色情報を設定します。
GcTabControl1.OutLineColor = Me.ColorDialog1.Color
枠線の色の変更は、フラットスタイルのみ有効で、それ以外のスタイルでは無効になります。
このプログラムでは、チェックボックスにチェックを入れると、強制的にスタイルを標準に変えてフラットスタイルにし、[色]ボタンを押すと色のダイアログを表示して枠線の色を変更できるようにしています。
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged Me.GcTabControl1.Appearance = GrapeCity.Win.TabPlus.TabAppearance.Standard If Me.CheckBox1.Checked = True Then GcTabControl1.Flat = True Me.Button1.Enabled = True Else GcTabControl1.Flat = False Me.Button1.Enabled = False End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click If Me.ColorDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then GcTabControl1.OutLineColor = Me.ColorDialog1.Color End If End Sub
フォントの設定
フォントの設定は、GcTabControlコントロール全体と各部位ごとに適用できます。
タブのフォントだけを変えたい場合は、TabStyle
クラスのFont
プロパティを変更します。
Me.GcTabControl1.TabStyle.Font = Me.FontDialog1.Font
また、文字色の変更は、TabStyle
クラスのForeColor
プロパティを操作します。
GcTabControl1.TabStyle.ForeColor = Me.ColorDialog1.Color
TextEffect
プロパティを使用すると、文字を立体的に表示することができます。設定値は、TextEffect
列挙体のメンバを指定します。
GcTabControl1.TabStyle.TextEffect = GrapeCity.Win.TabPlus.TextEffect.RaisedLite
メンバ名 | 説明 |
Flat | テキストを3D効果なしで描画します。 |
Inset | テキストは強くくぼんで表示されます。 |
Raised | テキストは強く浮き出して表示されます。 |
InsetLite | テキストは軽くくぼんで表示されます。 |
RaisedLite | テキストは軽く浮き出して表示されます。 |
タブの並び替えをドラッグ&ドロップで行う
AllowDragDrop
プロパティをTrueにすると、プログラム実行中にExcelのワークシートのように、タブをドラッグ&ドロップで移動させることができます。
Me.GcTabControl1.AllowDragDrop = True
サンプルプログラムの「タブページ3」に、VS2005標準のタブコントロールを組み込んでありますが、標準コントロールではこのドラッグ&ドロップによるタブの移動はできません。
タブの段差表示
Multiline
プロパティをTrueにセットすると、タブを複数段で表示できます。
GcTabControl1.Multiline = True
さらに、PageSpace
プロパティを使って、各段の開始位置をずらすことができます。プロパティの値に正の整数を指定すると左に、負の整数を指定すると右にずれます。
GcTabControl1.PageSpace = 5
各処理の作成(2/2)
ボタンスキンの設定
ボタンスキンとは、タブ形状をボタンにしたときに、ボタンの形状を変える操作のことです。
タブのスタイルは、実はすべてオブジェクトになっており、それぞれのクラスを使うことでカスタマイズすることができます。
ButtonsSkin
ClassicSkin
ExcelSkin
ImageSkin
MdiChildSkin
Skin
StandardSkin
SystemSkin
VS2005Skin
ボタンスキンは、この中のButtonsSkin
クラスで、あらかじめいくつかのスタイルが用意されており、これを使うことができますが、独自にカスタマイズしたりゼロから描画したりすることもできます。
ボタンスキンを使う場合は、次の操作をします。
- まず、
ButtonsSkin
クラスのインスタンスを作成します。Dim objButtonsSkin _ As New GrapeCity.Win.TabPlus.Skins.ButtonsSkin
- そのインスタンスの、
ButtonsSkinStyle
プロパティに、設定したいスタイルを指定します。値は、ButtonsSkinStyle
列挙体のメンバです。objButtonsSkin.ButtonsSkinStyle = _ GrapeCity.Win.TabPlus.Skins.ButtonsSkinStyle.ActiveFlat
- ボタンスキンが使えるように、
Appearance
プロパティにTabAppearance
列挙体のメンバの中の、カスタムスキンスタイル「Skin」を指定します。GcTabControl1.Appearance _ = GrapeCity.Win.TabPlus.TabAppearance.Skin
GcTabControl1
クラスのSkin
プロパティに、作成したButtonsSkin
クラスのインスタンスを設定します。GcTabControl1.Skin = objButtonsSkin
メンバ名 | 説明 |
Normal | 通常のボタンスタイル |
Flat | フラットのボタンスタイル |
Popup | ポップアップのボタンスタイル |
ActiveFlat | アクティブフラットのボタンスタイル |
Borderless | 境界線のないボタン |
XPButton | Windows XPのボタンスタイル |
XPToolBarButton | Windows XPツールバーのボタンスタイル |
Office2003GradientToolBarButton | Office 2003ツールバーのグラディエントボタンスタイル |
Office2003HighlightToolBarButton | Office 2003ツールバーのハイライトボタンスタイル |
VS2003WhiteButton | VS2003 Resx Editorの白いボタンスタイル |
タブの背景色の変更
単色での塗りつぶし
TabStyle
クラスのBackColor
プロパティを使うと、タブの背景色を塗りつぶすことができます。
GcTabControl1.TabStyle.BackColor = Me.ColorDialog1.Color
パターンでの塗りつぶし
PatternEffect
プロパティを使用すると、タブの背景色をパターンで塗りつぶすことができます。
プロパティの設定値はPatternEffect
オブジェクトなので、PatternEffect
クラスのコンストラクタを使用してインスタンスを作成し、PatternEffect
プロパティに設定します。
コンストラクタの引数は2つで、最初の引数に塗りつぶしパターンの種類を整数値またはPatternStyle
列挙体のメンバで指定します。2番目の引数には、パターンの色を指定します。タブの背景色と組み合わせて、いろいろな色のパターンを作成できます。
Dim objPatternEffect As New GrapeCity.Win.TabPlus.PatternEffect _ (GrapeCity.Win.TabPlus.PatternStyle.BackwardDiagonal, Color.Green) GcTabControl1.TabStyle.PatternEffect = objPatternEffect
グラデーションでの塗りつぶし
前回の記事でも紹介した、タブをグラデーションで塗りつぶす方法ですが、今回はもう少し詳しく紹介します。
タブのグラデーションでの塗りつぶしは、まずGradientEffect
オブジェクトを作成します。作成には、クラスのコンストラクタを使用し、最初の引数にグラデーションのスタイル、2番目の引数にグラデーションの方向、3番目の引数にグラデーションの開始色、4番目の引数にグラデーションの終了色を指定します。
グラデーションのスタイルはGradientStyle
列挙体のメンバまたは整数値を、方向はGradientDirection
列挙体のメンバまたは整数値を指定します。
Dim objGradientEffect As New GrapeCity.Win.TabPlus.GradientEffect _ (GrapeCity.Win.TabPlus.GradientStyle.Horizontal, _ GrapeCity.Win.TabPlus.GradientDirection.Forward, Color.Orange, Color.Yellow)
GradientEffect
オブジェクトを作成したら、これをGradientEffect
プロパティに設定します。
GcTabControl1.TabStyle.GradientEffect = objGradientEffect
まとめ
紹介したように、TabPlusコンポーネントを使用すると、標準コントロールにはない多彩なデザインをタブに施すことができます。また、タブのドラッグ&ドロップによる移動は、Excel風のワークシートを作成したときなどに使うと便利です。
他のアプリケーションと一味違ったデザインを作りたいときは、このTabPlusコンポーネントを使ってみてはいかがでしょうか。