コードでのコマンドリンクの作成 2
イベントハンドラの処理の作成
次に、イベントハンドラでの処理を作成します。イベントハンドラは「HandleCommand」という名前で、Object
とCommandClickEventArgs
を引数に持ちます。sender
はイベントが発生したオブジェクトの情報を格納し、e
にはイベントに関する情報が格納されます。
Private Sub HandleCommand(ByVal sender As Object, _ ByVal e As CommandClickEventArgs)
private void HandleCommand( Object sender , CommandClickEventArgs e )
ここでは、お気に入りのコマンドリンクはWebページにジャンプさせます。これは、WebBrowserコントロールのNavigate
メソッドを使用します。、ブラウザのコマンドは、WebBrowserコントロールのGoForward
とGoBack
メソッドを利用します。
それぞれ、コマンドリンクのテキストの文字列をイベントハンドラsender
から取得し、これによって処理を分岐するようにします。
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
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イベントでのアイコンの表示切替で行います。
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
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コンポーネントの導入を考えてみてはいかがでしょう。