SHOEISHA iD

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

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

ComponentZine(ComponentOne)

Visual Studioのツールボックス風ツールバーを実装する

PowerTools Menus&Toolbars for .NET のC1OutBarを使ったWebブラウザの作成

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

コードでのコマンドリンクの作成 1

 では、コードを組み立てていきましょう。最初は、フォームのLoadイベントハンドラで、2つのページに配置するコマンドリンクを作成します。

コマンドリンクの作成

 コマンドリンクは、ボタン形状のコマンドでイベントを利用して処理を実行させます。オブジェクトはC1Commandで、C1CommandHolderオブジェクトのCreateCommandメソッドを使って作成します。

 作成したら、Textプロパティに表示する文字列を設定します。ImageListコントロールに組み込んだアイコンのインデックス番号をImageIndexプロパティに指定すると画像も表示できます。ここでは、Webサイトへの接続のためのコマンドリンクを3つ、ブラウザの[進む][戻る]ボタン用のコマンドリンクを2つ作成します。

 なお、名前空間「C1.Win.C1Command」への参照を設定しておいてください。

Visual Basic
Imports C1.Win.C1Command
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) _
                            Handles MyBase.Load
        Dim cmdurl1 As C1Command = Me.C1CommandHolder1.CreateCommand()
        cmdurl1.Text = "翔泳社"
        cmdurl1.ImageIndex = 2

        Dim cmdurl2 As C1Command = Me.C1CommandHolder1.CreateCommand()
        cmdurl2.Text = "グレープシティ"
        cmdurl2.ImageIndex = 2

        Dim cmdurl3 As C1Command = Me.C1CommandHolder1.CreateCommand()
        cmdurl3.Text = "CodeZine"
        cmdurl3.ImageIndex = 2

        Dim cmdGoFirst As C1Command _
          = Me.C1CommandHolder1.CreateCommand()
        cmdGoFirst.Text = "進む"
        cmdGoFirst.ImageIndex = 0

        Dim cmdGoPrev As C1Command _
          = Me.C1CommandHolder1.CreateCommand()
        cmdGoPrev.Text = "戻る"
        cmdGoPrev.ImageIndex = 1
Visual C#
using C1.Win.C1Command;

private void Form1_Load(object sender, EventArgs e)
    {
        // コマンドを作成します。
        C1Command cmdurl1  = c1CommandHolder1.CreateCommand();
        cmdurl1.Text = "翔泳社";
        cmdurl1.ImageIndex = 2;

        C1Command cmdurl2 = c1CommandHolder1.CreateCommand();
        cmdurl2.Text = "グレープシティ";
        cmdurl2.ImageIndex = 2;

        C1Command cmdurl3  = c1CommandHolder1.CreateCommand();
        cmdurl3.Text = "CodeZine";
        cmdurl3.ImageIndex = 2;

        C1Command cmdGoFirst   = c1CommandHolder1.CreateCommand();
        cmdGoFirst.Text = "進む";
        cmdGoFirst.ImageIndex = 0;

        C1Command cmdGoPrev   = c1CommandHolder1.CreateCommand();
        cmdGoPrev.Text = "戻る";
        cmdGoPrev.ImageIndex = 1;

イベントハンドラの作成

 作成したコマンドリンクに対するイベントハンドラを作成します。ここでは、5つのコマンドリンクすべてに同じイベントハンドラを設定します。そして、イベントハンドラは、独自のプロシージャ・メソッドとしてクラス内に作成します。

 まず、Visual BasicではAddHandlerステートメントを使い、C#ではCommandClickEventHandlerオブジェクトを作成して、C1CommandHolder1コンポーネントの「CommandClick」というイベントに「HandleCommand」という名前のイベントハンドラを関連付けます。

 これで、コマンドリンクをクリックすると、HandleCommandイベントハンドラが呼び出されるようになります。

Visual Basic
AddHandler Me.C1CommandHolder1.CommandClick, _
                New CommandClickEventHandler(AddressOf HandleCommand)
Visual C#
c1CommandHolder1.CommandClick 
  += new CommandClickEventHandler(HandleCommand);

ツールバーの作成

 今度は、コマンドリンクを組み込むためのツールバーを作成し、これをC1OutBarコントロールの各ページに組み込みます。

 まず、C1ToolBarクラスのコンストラクタを使って、最初のページ用のC1ToolBarオブジェクトを作成します。そして、このオブジェクトとC1CommandHolderコンポーネントとを、C1ToolBarクラスのCommandHolderプロパティで関連付けます。

Visual Basic
Dim tbWeb As C1ToolBar = New C1ToolBar()
tbWeb.CommandHolder = Me.C1CommandHolder1
Visual C#
C1ToolBar tbWeb = new C1ToolBar();
tbWeb.CommandHolder = c1CommandHolder1;

 後は、C1ToolBarクラスのプロパティを使って外観を設定します。

Visual Basic
tbWeb.Horizontal = False
tbWeb.Dock = DockStyle.Fill
tbWeb.ButtonLayoutVert = ButtonLayoutEnum.TextOnRight
tbWeb.ButtonLookVert = ButtonLookFlags.TextAndImage
Visual C#
tbWeb.Horizontal = false;
tbWeb.Dock = DockStyle.Fill;
tbWeb.ButtonLayoutVert = ButtonLayoutEnum.TextBelow;
tbWeb.ButtonLookVert = ButtonLookFlags.TextAndImage;

 そして、ブラウザ操作用のツールバーをもう1つ作ります。

Visual Basic
Dim tbCmd As C1ToolBar = New C1ToolBar
tbCmd.CommandHolder = Me.C1CommandHolder1
tbCmd.Horizontal = False
tbCmd.Dock = DockStyle.Fill
tbCmd.ButtonLayoutVert = ButtonLayoutEnum.TextBelow
tbCmd.ButtonLookVert = ButtonLookFlags.TextAndImage
Visual C#
C1ToolBar tbCmd  = new C1ToolBar();
tbCmd.CommandHolder = c1CommandHolder1;
tbCmd.Horizontal = false;
tbCmd.Dock = DockStyle.Fill;
tbCmd.ButtonLayoutVert = ButtonLayoutEnum.TextBelow;
tbCmd.ButtonLookVert = ButtonLookFlags.TextAndImage;

 作成したコマンドリンクを、CommandLinksコレクションのAddメソッドを使ってツールバーに組み込みます。

Visual Basic
tbWeb.CommandLinks.Add(New C1CommandLink(cmdurl1))
tbWeb.CommandLinks.Add(New C1CommandLink(cmdurl2))
tbWeb.CommandLinks.Add(New C1CommandLink(cmdurl3))

tbCmd.CommandLinks.Add(New C1CommandLink(cmdGoFirst))
tbCmd.CommandLinks.Add(New C1CommandLink(cmdGoPrev))
Visual C#
tbWeb.CommandLinks.Add(new C1CommandLink(cmdurl1));
tbWeb.CommandLinks.Add(new C1CommandLink(cmdurl2));
tbWeb.CommandLinks.Add(new C1CommandLink(cmdurl3));

tbCmd.CommandLinks.Add(new C1CommandLink(cmdGoFirst));
tbCmd.CommandLinks.Add(new C1CommandLink(cmdGoPrev));

 このツールバーを、各ページ(c1OutPageオブジェクト)に組み込みます。これは、C1OutBarコンポーネントのPagesプロパティで各ページを参照し、Addメソッドで組み込みます。

Visual Basic
Me.C1OutBar1.Pages(0).Controls.Add(tbWeb)
Me.C1OutBar1.Pages(1).Controls.Add(tbCmd)
Visual C#
c1OutBar1.Pages[0].Controls.Add(tbWeb);
c1OutBar1.Pages[1].Controls.Add(tbCmd);

 これで、C1OutBarコンポーネントを組み込んだツールバーができました。

次のページ
コードでのコマンドリンクの作成 2

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1283 2008/08/20 13:34

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング