SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

ドッキング・分離可能なタブページを持った.NETアプリケーションの作成

ComponentOne Studio for Windows FormsのC1DockingTab・C1CommandDockコントロールを使ったアプリケーションの作成

  • このエントリーをはてなブックマークに追加

タブの形状を変える処理

 「ページ1」と「ページ4」の処理を作成していきます。

 まずは、「ページ1」に配置したラジオボタンを使って、タブページのタブの形状をコードから変える処理です。これは、C1DockingTabコントロールのTabStyleプロパティを変えます。

 まず、モジュールレベル変数を1つ用意し、各ラジオボタンのCheckedChangedイベントハンドラでタブ形状を格納します。そして、ボタンのClickイベントハンドラで、TabStyleプロパティの値を入れ替えます。

 これで、ラジオボタンを使ってタブ形状を切り替えることができます。

ラジオボタンでタブ形状を切り替えられる
ラジオボタンでタブ形状を切り替えられる
Visual Basic
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
C#
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を作成しました」と表示するようにします。

Visual Basic
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
C#
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フォームなどを使うよりも簡単で便利だと思います。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5705 2011/01/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング