タブの形状を変える処理
「ページ1」と「ページ4」の処理を作成していきます。
まずは、「ページ1」に配置したラジオボタンを使って、タブページのタブの形状をコードから変える処理です。これは、C1DockingTabコントロールのTabStyleプロパティを変えます。
まず、モジュールレベル変数を1つ用意し、各ラジオボタンのCheckedChangedイベントハンドラでタブ形状を格納します。そして、ボタンのClickイベントハンドラで、TabStyleプロパティの値を入れ替えます。
これで、ラジオボタンを使ってタブ形状を切り替えることができます。

Private pos As String
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
If RadioButton1.Checked = True Then
pos = "Rounded"
End If
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
If RadioButton2.Checked = True Then
pos = "Office2007"
End If
End Sub
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
If RadioButton3.Checked = True Then
pos = "Sloping"
End If
End Sub
Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
If RadioButton4.Checked = True Then
pos = "Classic"
End If
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Select Case pos
Case "Rounded"
Me.C1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Rounded
Case "Office2007"
Me.C1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Office2007
Case "Sloping"
Me.C1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Sloping
Case "Classic"
Me.C1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Classic
End Select
End Sub
private string pos;
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if(radioButton1.Checked == true)
{
pos = "Rounded";
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
{
pos = "Office2007";
}
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
if (radioButton3.Checked == true)
{
pos = "Sloping";
}
}
private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
if (radioButton4.Checked == true)
{
pos = "Classic";
}
}
private void button1_Click(object sender, EventArgs e)
{
switch(pos)
{
case "Rounded":
this.c1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Rounded;
break;
case "Office2007":
c1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Office2007;
break;
case "Sloping":
c1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Sloping;
break;
case "Classic":
c1DockingTab1.TabStyle = C1.Win.C1Command.TabStyleEnum.Classic;
break;
}
}
タブページを追加する処理
「ページ4」では、ボタンを押すと新しいタブページを追加する処理を作成します。
タブページの追加は、新しいC1DockingTabPageオブジェクトを作成し、C1DockingTabPageコレクションに追加します。作成したタブページは、ページとタブの背景色を設定し、タブに「ページx」という文字を設定します。
また、タブページにコントロールを追加するには、追加したいコントロールを作成し、C1DockingTabオブジェクトのControlsコレクションに追加します。ここではラベルを作成し、C1DockingTabPageコレクションのCountプロパティでタブページの総数を取得して、「ページxを作成しました」と表示するようにします。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'コードから新しいタブページを作成する
Dim newpage As C1.Win.C1Command.C1DockingTabPage = New C1.Win.C1Command.C1DockingTabPage()
newpage.Text = "ページ" & (C1DockingTab1.TabPages.Count + 1)
newpage.TabBackColor = Color.PaleGreen
newpage.BackColor = Color.PaleGreen
'作成したタブページにラベルを追加する
Dim lb As Label = New Label()
lb.AutoSize = True
lb.Text = newpage.Text & "を作成しました"
lb.Location = New Point(100, 100)
newpage.Controls.Add(lb)
'作成したタブページをC1DockingTabコントロールに追加する
Me.C1DockingTab1.TabPages.Add(newpage)
End Sub
private void button2_Click(object sender, EventArgs e)
{
//コードから新しいタブページを作成する
C1.Win.C1Command.C1DockingTabPage newpage = new C1.Win.C1Command.C1DockingTabPage();
newpage.Text = "ページ" + (c1DockingTab1.TabPages.Count + 1);
newpage.TabBackColor = Color.PaleGreen;
newpage.BackColor = Color.PaleGreen;
//作成したタブページにラベルを追加する
Label lb = new Label();
lb.AutoSize = true;
lb.Text = newpage.Text + "を作成しました";
lb.Location = new Point(100, 100);
newpage.Controls.Add(lb);
//作成したタブページをC1DockingTabコントロールに追加する
c1DockingTab1.TabPages.Add(newpage);
}

まとめ
C1DockingTabコントロールは、簡単にページの追加やドッキング・フローティング表示ができ、コードからタブページへのコントロール追加をすることも可能です。Visual Studioのようにサブウィンドウをいくつも使うアプリケーションを作る場合、フォームの多用やMDIフォームなどを使うよりも簡単で便利だと思います。
