タブの形状を変える処理
「ページ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フォームなどを使うよりも簡単で便利だと思います。