SHOEISHA iD

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

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

ComponentZine(ComponentOne)

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

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

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

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

イベントハンドラの処理の作成

 次に、イベントハンドラでの処理を作成します。イベントハンドラは「HandleCommand」という名前で、ObjectCommandClickEventArgsを引数に持ちます。senderはイベントが発生したオブジェクトの情報を格納し、eにはイベントに関する情報が格納されます。

Visual Basic
Private Sub HandleCommand(ByVal sender As Object, _
                          ByVal e As CommandClickEventArgs)
Visual C#
private void HandleCommand( Object sender , CommandClickEventArgs e )

 ここでは、お気に入りのコマンドリンクはWebページにジャンプさせます。これは、WebBrowserコントロールのNavigateメソッドを使用します。、ブラウザのコマンドは、WebBrowserコントロールのGoForwardGoBackメソッドを利用します。

 それぞれ、コマンドリンクのテキストの文字列をイベントハンドラsenderから取得し、これによって処理を分岐するようにします。

Visual Basic
Select Case e.Command.Text
    Case "翔泳社"
        Me.WebBrowser1.Navigate("http://www.seshop.com/")
    Case "グレープシティ"
        Me.WebBrowser1.Navigate("http://www.grapecity.com/japan/")
    Case "CodeZine"
        Me.WebBrowser1.Navigate("http://codezine.jp/")
    Case "進む"
        Me.WebBrowser1.GoForward()
    Case "戻る"
        Me.WebBrowser1.GoBack()
    End Select
Visual C#
switch(e.Command.Text){
    case "翔泳社":
        webBrowser1.Navigate("http://www.seshop.com/");
        break;
    case "グレープシティ":
        webBrowser1.Navigate("http://www.grapecity.com/japan/");
        break;
    case "CodeZine":
        webBrowser1.Navigate("http://codezine.jp/");
        break;
    case "進む":
        webBrowser1.GoForward();
        break;
    case "戻る":
        webBrowser1.GoBack();
        break;

ページ「契約会社へのリンク」のアイコンのアニメーション処理

 WebBrowserコントロールは指定したURLに接続し、コンテンツのダウンロードを開始すると「FileDownload」というイベントを発生させます。また、ダウンロードが完了すると「DocumentCompleted」というイベントが発生します。これらのイベントを利用して、ページを表示している最中にページ「契約会社へのリンク」のアイコンをアニメーションさせ、Webページにアクセス中であることをユーザーに知らせるようにします。

 これは、TimerコントロールのEnabledプロパティの操作と、Tickイベントでのアイコンの表示切替で行います。

Visual Basic
Private Sub WebBrowser1_DocumentCompleted(_
        ByVal sender As System.Object, _
        ByVal e As System.Windows.Forms._
            WebBrowserDocumentCompletedEventArgs) _
                Handles WebBrowser1.DocumentCompleted
    Me.Timer1.Enabled = False
End Sub

Private Sub WebBrowser1_FileDownload(ByVal sender As Object, _
                                     ByVal e As System.EventArgs) _
                                      Handles WebBrowser1.FileDownload
    Me.Timer1.Enabled = True
End Sub

Private flag As Boolean = False
Private Sub Timer1_Tick(ByVal sender As System.Object, _
                        ByVal e As System.EventArgs) _
                         Handles Timer1.Tick
    If flag = False Then
        Me.C1OutPage1.ImageIndex = 4
        flag = True
    Else
        Me.C1OutPage1.ImageIndex = 3
        flag = False
    End If
End Sub
Visual C#
private void webBrowser1_DocumentCompleted(object sender, 
                               WebBrowserDocumentCompletedEventArgs e)
{
    timer1.Enabled = false;
}

private void webBrowser1_FileDownload(object sender, EventArgs e)
{
    timer1.Enabled = true;
}

Boolean flag = false;
private void timer1_Tick(object sender, EventArgs e)
{
    if( flag == false)
    {
        c1OutPage1.ImageIndex = 4;
        flag = true;
    }else{
        c1OutPage1.ImageIndex = 3;
        flag = false;
    }
}

まとめ

 C1OutBarコンポーネントはVS標準のコントロールにはない、面白い機能を持っています。たくさんのコマンドを使用するアプリケーションでは、使い勝手がよく、見た目も新鮮なGUIを作ることができると思います。

 VS標準のツールバーやメニューにはもう飽きたという方や、操作系が多くてどうやって整理しようかとお悩みのプログラマは、C1OutBarコンポーネントの導入を考えてみてはいかがでしょう。

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング