コードでのコマンドリンクの作成 1
では、コードを組み立てていきましょう。最初は、フォームのLoadイベントハンドラで、2つのページに配置するコマンドリンクを作成します。
コマンドリンクの作成
コマンドリンクは、ボタン形状のコマンドでイベントを利用して処理を実行させます。オブジェクトはC1Command
で、C1CommandHolder
オブジェクトのCreateCommand
メソッドを使って作成します。
作成したら、Text
プロパティに表示する文字列を設定します。ImageListコントロールに組み込んだアイコンのインデックス番号をImageIndex
プロパティに指定すると画像も表示できます。ここでは、Webサイトへの接続のためのコマンドリンクを3つ、ブラウザの[進む][戻る]ボタン用のコマンドリンクを2つ作成します。
なお、名前空間「C1.Win.C1Command」への参照を設定しておいてください。
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
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イベントハンドラが呼び出されるようになります。
AddHandler Me.C1CommandHolder1.CommandClick, _ New CommandClickEventHandler(AddressOf HandleCommand)
c1CommandHolder1.CommandClick
+= new CommandClickEventHandler(HandleCommand);
ツールバーの作成
今度は、コマンドリンクを組み込むためのツールバーを作成し、これをC1OutBarコントロールの各ページに組み込みます。
まず、C1ToolBar
クラスのコンストラクタを使って、最初のページ用のC1ToolBar
オブジェクトを作成します。そして、このオブジェクトとC1CommandHolderコンポーネントとを、C1ToolBar
クラスのCommandHolder
プロパティで関連付けます。
Dim tbWeb As C1ToolBar = New C1ToolBar() tbWeb.CommandHolder = Me.C1CommandHolder1
C1ToolBar tbWeb = new C1ToolBar();
tbWeb.CommandHolder = c1CommandHolder1;
後は、C1ToolBar
クラスのプロパティを使って外観を設定します。
tbWeb.Horizontal = False
tbWeb.Dock = DockStyle.Fill
tbWeb.ButtonLayoutVert = ButtonLayoutEnum.TextOnRight
tbWeb.ButtonLookVert = ButtonLookFlags.TextAndImage
tbWeb.Horizontal = false;
tbWeb.Dock = DockStyle.Fill;
tbWeb.ButtonLayoutVert = ButtonLayoutEnum.TextBelow;
tbWeb.ButtonLookVert = ButtonLookFlags.TextAndImage;
そして、ブラウザ操作用のツールバーをもう1つ作ります。
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
C1ToolBar tbCmd = new C1ToolBar(); tbCmd.CommandHolder = c1CommandHolder1; tbCmd.Horizontal = false; tbCmd.Dock = DockStyle.Fill; tbCmd.ButtonLayoutVert = ButtonLayoutEnum.TextBelow; tbCmd.ButtonLookVert = ButtonLookFlags.TextAndImage;
作成したコマンドリンクを、CommandLinksコレクションのAdd
メソッドを使ってツールバーに組み込みます。
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))
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
メソッドで組み込みます。
Me.C1OutBar1.Pages(0).Controls.Add(tbWeb) Me.C1OutBar1.Pages(1).Controls.Add(tbCmd)
c1OutBar1.Pages[0].Controls.Add(tbWeb); c1OutBar1.Pages[1].Controls.Add(tbCmd);
これで、C1OutBarコンポーネントを組み込んだツールバーができました。