Home > Visual Basic .NET > ExplorerBar Control for .NET

ExplorerBar Control for .NET

December 24, 2010

Ketika memutuskan untuk beralih ke VB .NET salah satu komponen yang saya buru adalah ExplorerBar dan kabar baiknya vbaccelerator juga sudah menyediakan komponen ini, tapi kabar buruknya sample source codenya menggunakan C# .NET😦.

Tapi tenang aja, dulu saya juga pernah iseng2x belajar bahasa ini, jadi proses konversi dari C# .NET ke VB .NET pun berjalan lancar🙂.

Oke, klo sudah enggak sabaran langsung aja download librarynya disini dan untuk sample aslinya (bahasa C# .NET) bisa didownload disini.

Sama seperti postingan saya sebelumnya, untuk menambahkan Bar Menu (menu induk) dan Item Menu (menu anak) saya pisah menjadi 2 fungsi yaitu :

Private Function SetBarMenu(ByVal explorerBar As vbAccelerator.Components.Controls.acclExplorerBar, _
                            ByVal menuName As String, ByVal menuCaption As String, ByVal iconIndex As Integer) As explorerBar

    Dim barMenu As explorerBar

    barMenu = New explorerBar
    With barMenu
        .IsSpecial = True
        .iconIndex = iconIndex
        .Text = menuCaption
        .Tag = menuName
    End With

    Return barMenu

End Function

dan

Private Function SetItemMenu(ByVal explorerBar As vbAccelerator.Components.Controls.acclExplorerBar, _
                             ByVal menuName As String, ByVal menuCaption As String, ByVal iconIndex As Integer) As ExplorerBarLinkItem

    Dim barItem As ExplorerBarLinkItem

    barItem = New ExplorerBarLinkItem
    With barItem
        .iconIndex = iconIndex
        .Text = menuCaption
        .Tag = menuName ' ini berguna untuk menghandle menu yang diklik
    End With

    Return barItem
End Function

Selanjutnya kita tinggal gabungkan ke dua fungsi diatas

Private Sub AddMenu()
    Dim strSql As String = String.Empty
    Dim barMenu As explorerBar

    Try
        With AcclExplorerBar1
            .ImageList = ilsIcons
            .TitleImageList = ilsTitleIcons
            .DrawingStyle = ExplorerBarDrawingStyle.Custom

            .BackColorStart = Color.FromArgb(100, 149, 237)
            .BackColorEnd = Color.FromArgb(100, 149, 237)

            ' menampilkan menu induk
            strSql = "SELECT id, menu_name, menu_caption " & _
                     "FROM menu_induk " & _
                     "ORDER BY id"
            Dim cmdMenuInduk As New OleDb.OleDbCommand(strSql, conn)
            Dim dtrMenuInduk As OleDb.OleDbDataReader = cmdMenuInduk.ExecuteReader()
            If dtrMenuInduk.HasRows Then
                While dtrMenuInduk.Read()
                    barMenu = Me.SetBarMenu(AcclExplorerBar1, dtrMenuInduk.Item("menu_name").ToString(), dtrMenuInduk.Item("menu_caption").ToString(), 0)
                    Dim barItems As ExplorerBarItemCollection = barMenu.Items

                    ' menampilkan menu anak
                    strSql = "SELECT menu_name, menu_caption " & _
                             "FROM menu_anak " & _
                             "WHERE menu_induk_id = " & dtrMenuInduk.Item("id").ToString() & " " & _
                             "ORDER BY id"
                    Dim cmdMenuAnak As New OleDb.OleDbCommand(strSql, conn)
                    Dim dtrMenuAnak As OleDb.OleDbDataReader = cmdMenuAnak.ExecuteReader()
                    If dtrMenuAnak.HasRows Then
                        While dtrMenuAnak.Read()
                            Dim barItem As ExplorerBarLinkItem
                            barItem = Me.SetItemMenu(AcclExplorerBar1, dtrMenuAnak.Item("menu_name").ToString(), dtrMenuAnak.Item("menu_caption").ToString(), 0)
                            barItems.Add (barItem)
                        End While
                    End If
                    dtrMenuAnak.Close()
                    cmdMenuAnak.Dispose()

                    .Bars.Add (barMenu)
                End While
            End If
            dtrMenuInduk.Close()
            cmdMenuInduk.Dispose()

        End With

        ' set warna menu bar (master, transaksi, biaya, laporan)
        For Each bar As ExplorerBar In AcclExplorerBar1.Bars
            bar.TitleForeColor = Color.FromArgb(0, 0, 128)
            bar.TitleForeColorHot = Color.FromArgb(0, 0, 128)

            bar.TitleBackColorStart = Color.FromArgb(234, 241, 253)
            bar.TitleBackColorEnd = Color.FromArgb(100, 149, 237)

            bar.BackColor = Color.FromArgb(176, 196, 222)

            ' set warna menu item (barang, customer, supplier, dll)
            For Each itm As ExplorerBarItem In bar.Items
                Dim textItem As ExplorerBarLinkItem = CType(itm, ExplorerBarLinkItem)

                textItem.ForeColor = Color.FromArgb(0, 0, 128) ' bar.TitleBackColorEnd
                textItem.ForeColorHot = Color.White ' bar.TitleBackColorStart
            Next
        Next

    Catch ex As Exception
        Debug.Print (ex.Message)

    Finally
        conn.Close()
    End Try

End Sub

cuplikan source diatas menampilkan menu dari database (Ms Access), selanjutnya tinggal dipanggil di event Form_Load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Call AddMenu
    Me.BackColor = Color.FromArgb(100, 149, 237)
End Sub

terakhir untuk menghandle menu yang diklik kita memanfaatkan property Tag ExplorerBar, nilai dari property Tag ini sudah kita set pada saat memanggil fungsi SetItemMenu

Private Sub AcclExplorerBar1_ItemClick(ByVal sender As Object, ByVal args As vbAccelerator.Components.Controls.ExplorerBarItemClickEventArgs) Handles AcclExplorerBar1.ItemClick
    Dim itmMenu As ExplorerBarLinkItem = CType(args.Item, ExplorerBarLinkItem)

    If itmMenu.Tag IsNot Nothing Then
        Select Case itmMenu.Tag.ToString()
            Case "mnuBarang" ' TODO : tampilkan frmBarang disini
            Case "mnuCustomer"
            Case "mnuSupplier"
            Case "mnuPembelian"
            Case "mnuReturPembelian"
            Case "mnuPenjualan"
            Case "mnuBiayaOperasional"
            Case "mnuGajiKaryawan"
            Case "mnuLapPembelian"
            Case "mnuLapJthTempo"
            Case "mnuLapPenjualan"
        End Select
    End If
End Sub

Selamat MENCOBA🙂

  1. Muh.Abd. Gafur
    December 26, 2010 at 9:18 am

    Enggak jadi nih akhi, beralih ke Java Programming

    • December 26, 2010 at 9:35 am

      Enggak juga kok akh, cuma dipending aja😀
      Soalnya kerjaan kantor lagi kejar tayang.

  2. Muh.Abd. Gafur
    December 26, 2010 at 9:28 am

    Basic vb6 memang butuh waktu tuk belajar java

    • December 26, 2010 at 9:39 am

      Sebenarnya sih enggak juga klo belajarnya rutin, tp klo putus nyambung seperti ini deh jadinya jalan ditempat😦

  3. Ferdiansyah
    January 6, 2011 at 10:20 am

    Mas, saya mau tanya terkait dll or ocx ExplorerBar.,, klo saya mau rubah warna nya letak scriptnya ada dimana yah ? defaultnya kan Biru , biru tua tuh, ????
    Mohon Pencerahannya…..

    • January 7, 2011 at 1:20 am

      Coba di eksplorasi aja om properties2x yang ada kata “Color” nya, ex : BackColorStart, BackColorEnd, TitleForeColor de el el, itu akan mempercepat pemahaman om.

  4. sartono
    February 8, 2011 at 4:47 am

    Cara add ke toolbox gmn ya? waktu add COM acc*.tlb could loaded? add choose item apa add refenrence? ada pencerahan?

    • February 8, 2011 at 5:29 am

      tinggal klik kanan toolbox -> chose items kemudian pilih file acclExplorerBar.dll nya

  5. eko
    February 24, 2011 at 3:26 am

    master kamar 82 bisa jadi guru private saya tidak? saya ingin belajar vb.net dari awal hingga mahir.jikalau bersedia kirim Cp ke email ya.ntar saya hubungi. makasih sebelumnya master ^:)^

    • February 24, 2011 at 4:39 am

      he he he😀

      kayaxnya enggak perlu pake private2xan deh om, cukup beli buku aja dan luangkan waktu sehari 4-5 jam trus klo mentox coba searching2x di forum2x programming klo enggax ketemu juga baru nanya, sy yakin deh banyak om2x yg dg senang hati ngejawabnya🙂

      • eko
        February 24, 2011 at 4:54 am

        menurut master buku yang baik buat pemula vb.net yang mana ya? banyak buku tapi gak tau maknanya.. ^ ^

        • February 24, 2011 at 5:40 am

          udah punya basic programming enggak om? minimal udah pernah make vb 6.

          ada buku bagus “Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic .NET” udah ada terjemahanya jg.

          klo sy sendiri referensinya pake yg ini.

          • eko
            February 24, 2011 at 11:53 am

            dulu pernah make tapi sekarng dah lupa master.cz dah lama gak belajar pemrograman..^:)^

            • February 25, 2011 at 1:45 am

              Ya udah lupain aja om mumpung belum terlanjur, coding itu pedih di mata n enggak baik bwt kesehatan.

              he he he😀

  6. eko
    March 15, 2011 at 4:06 am

    master..mw tanya nih.kan ku dah nyoba program dri master yg smartlibraryscholl,tu kan pake tab control? cara biar ke hide gmna ya?sy make daftar tab nya muncul semua,klo dari master jika diklik baru tab nya muncul ?mohon pencerahan nya.. ^:)^

  7. March 15, 2011 at 4:12 am

    Daftar tab yg mana ya om ? Yg untuk menampung formnya ya ?
    Klo iya coba meluncur kesini

    Selamat mencoba🙂

  8. eko
    March 15, 2011 at 4:27 am

    klo di vb.net gmana master ? kan di vb.net udah ada tab control ?

    • March 15, 2011 at 5:52 am

      Sy perjelas lagi deh pertanyaannya, ini tab untuk container control atw form ?
      Klo yg bawaan .net itu untuk container control (CMIIW), nah klo untuk form coba yg ini.

  9. eko
    March 15, 2011 at 12:07 pm

    yang form ohm master.yang kayak amplikasi smartlibraryscholl buatan master.misal daftar siswa diklik kan itu form keluar dlm bentuk tab,ma’ap banget nih.

    • March 15, 2011 at 1:18 pm

      Coba pake komponen DockPanel Suite om, untuk contoh penggunaannya bisa meluncur kesini.

      Selamat mencoba🙂

  10. Zhony
    March 22, 2011 at 9:48 am

    Salam Kenal,
    saya udah coba code diatas dg vb 2003, tapi ada error di
    .imagelist = ilsIcons dan
    .TitleImageList = ilsTitleIcons.
    iLsIcons dan ilsTitleIcons tidak dikenal
    kemudian pada baris :
    Dim itmMenu As ExplorerBarLinkItem = CType(args.Item, ExplorerBarLinkItem)
    error : Names args is not declared

    If itmMenu.Tag IsNot Nothing Then
    error : End of statement expected
    Mohon bantuannya. thks

    • March 23, 2011 at 3:26 am

      Sory ya om agak susah nih cobanya soalnya sy pake vb 2005

    • Iril
      April 9, 2012 at 11:15 am

      pesan kesalahan itu karna di vs mas blm ada komponen ilsicons dan ilstitleicons, klo mas download program yg dikasih om admin pasti jalan, lihat komponen dibawah form…sedangkan klo kita buat dr awal gk bisa krn emg blm ada komponen nya, saya jg blm tau cara nambahin komponen itu, ckckckckc, mungkin om admin mau bantu…😀

      • April 9, 2012 at 7:01 pm

        Masa’ belum bisa menambahkan komponen ke project om ?
        1. Klik kanan project -> Add Reference..
        2. Aktifkan tab Browser kemudian cari file acclExplorerBar.dll yg ada di folder “bin\debug” dari sample diatas

        • iril
          April 9, 2012 at 7:24 pm

          bukan om, masukin komponen acclExplorerBar.dll sih udah, tapi ilsIcons dan ilsTitleIcons masih error karna komponen nya yg ga masuk ke toolbox, error dibawah om..

          Private Sub AddMenu()
          Dim strSql As String = String.Empty
          Dim barMenu As ExplorerBar

          Try
          With AcclExplorerBar1
          .ImageList = ilsIcons << disini
          .TitleImageList = ilsTitleIcons << disini

          gmana tuh om…

        • iril
          April 9, 2012 at 7:30 pm

          masalah sepele sih om wkwkwk udah bisa juga pake imagelist trus pilih icon deh, tp penasaran juga klo masalah spele ditinggalin, jd janggal gmana gtu om😀
          agak penasaran jd nya hehe

          • April 10, 2012 at 10:57 am

            Kayaxnya terjadi kesalahpahaman nih om, postingan sy yg diatas (versi C#) tidak menggunakan komponen iLsIcons dan ilsTitleIcons seingkat sy yg pake komponen itu postingan sy yg versi VB 6

  11. Mirza
    March 29, 2011 at 1:22 am

    Assalamualaikum rekan..
    saya mau minta tolong pencerahannya, saya udah coba listing diatas pake VB 2005, tapi kok gak jalan ya, padalah listingny dah sama persis, pas di jalankan aplikasinya ada pesan tentang “inner exception”, jadi bingung…
    terima kasih sebelumnya ya

  12. March 29, 2011 at 2:11 am

    Waalaikumussalam

    Coba langsung sourcenya aja om, disini.

    Klo belum bs juga coba emailkan aja sourcenya kesini.

    • Mirza
      March 30, 2011 at 12:58 am

      Assalamualaikum
      Mau nanya ne rekan, Kalo library vbaccelerator explorer bar nya ada permaslahan dengan compatiblenya gak ya? Soalnya saya coba narok explorer barnya aja(tanpa listing program) kemudian dijalankan ada pesan tentang compatible nya… Mohon pencerahannya rekan… terima kasih sebelumnya ya…

      • March 30, 2011 at 4:21 am

        Coba om pesan compatible lengkapnya di paste kesini.

        • Mirza
          March 30, 2011 at 7:16 am

          Pesan kesalahanya udah saya kirim melalui e-mail ya om. Maaf ngerepotin ya om, soalnya saya penasaran banget…
          Thank’s Before ya Om

          • March 31, 2011 at 1:31 am

            Sory om belum ketemu masalahnya, susah juga mau ngetesnya soalnya ditempat sy enggak pernah ada masalah, coba deh om tes juga dikomputer lain.

  13. July 15, 2011 at 3:25 pm

    cara manggil form lainnya gmana tu mas…misal mau manggil form barang….makasih mas

    • July 15, 2011 at 4:49 pm

      kalo ganti iconnya gimana ??
      thanks bgt nie

    • July 15, 2011 at 10:40 pm

      Di formnya kan ada 2 objek ImageList masing2x dg nama ilsTitleIcons (icon menu utama) dan ilsIcons (icon sub menu) tambahkan dulu iconnya disitu, trus dikode program tinggal ganti index iconnya pada saat pemanggilan method berikut :

      ' menu utama
      barMenu = Me.SetBarMenu(AcclExplorerBar1, dtrMenuInduk.Item("menu_name").ToString(), dtrMenuInduk.Item("menu_caption").ToString(), 0) ' 0 adalah index iconnya 
      
      ' sub menu
      barItem = Me.SetItemMenu(AcclExplorerBar1, dtrMenuAnak.Item("menu_name").ToString(), dtrMenuAnak.Item("menu_caption").ToString(), 0) ' 0 adalah index iconnya 
      
      • July 16, 2011 at 6:47 pm

        makasih banyak mas..ini bekerja untuk saya..tinggal tambahin image list nya..

        • bundanarty
          July 16, 2011 at 9:03 pm

          kalo setiap anak menu beda2 iconnya gmana ya mas..saya udah coba2 https://coding4ever.wordpress.com/2010/01/22/membuat-menu-samping-dengan-komponen-vbaccelerator-vb6-explorer-bar/..tetep saya ga bisa..maaf tanya mulu..masih newbie,,pengen belajar..makasih

          • July 17, 2011 at 12:28 am

            Coba om cek lagi databasenya trus di tabel MENU_ANAK om tambah field baru misal dg nama INDEX_ICON sekalian diisi datanya. INDEX_ICON dimulai dari NOL.
            Untuk revisi kode untuk pemanggilan sub menunya menjadi seperti ini :

            barItem = Me.SetItemMenu(AcclExplorerBar1, dtrMenuAnak.Item("menu_name").ToString(), dtrMenuAnak.Item("menu_caption").ToString(), Convert.ToInt32(dtrMenuAnak.Item("index_icon")))
            
            • bundanarty
              July 18, 2011 at 7:53 am

              isi dari INDEX_ICON itu apa ya?? apa masukin icon di image listnya..thanks..maaf tanya terus

              • July 18, 2011 at 8:10 am

                Dimasukin ANGKA om, misalkan om menambahkan 5 icon di ImageListnya untuk index_iconnya diisini nilai 0, 1, 2, 3 atw 4.

                Nilai indexnya disesuaiin dg icon yg ditampilkan untuk masing-masing menunya

                • bundanarty
                  July 18, 2011 at 9:52 am

                  mantabs mas..makasih banyakk..ijin sedot tutorial yang lainnya..

                  • July 18, 2011 at 11:44 am

                    Ok om

    • July 15, 2011 at 10:43 pm

      Ya sama om seperti memanggil form dari menu :

      Private Sub AcclExplorerBar1_ItemClick(ByVal sender As Object, ByVal args As vbAccelerator.Components.Controls.ExplorerBarItemClickEventArgs) Handles AcclExplorerBar1.ItemClick
              Dim itmMenu As ExplorerBarLinkItem = CType(args.Item, ExplorerBarLinkItem)
      
              If itmMenu.Tag IsNot Nothing Then
                  Select Case itmMenu.Tag.ToString()
                      Case "mnuBarang"
                          Dim frmBarang As New FrmBarang()
                          frmBarang.ShowDialog()
      
                      Case "mnuCustomer"
                      Case "mnuSupplier"
                      Case "mnuPembelian"
                      Case "mnuReturPembelian"
                      Case "mnuPenjualan"
                      Case "mnuBiayaOperasional"
                      Case "mnuGajiKaryawan"
                      Case "mnuLapPembelian"
                      Case "mnuLapJthTempo"
                      Case "mnuLapPenjualan"
                  End Select
              End If
          End Sub
      
      • July 16, 2011 at 6:52 pm

        begini juga bisa Case “mnuBarang” : Frmbarang.Show()
        makasih banyak mas..

        • July 17, 2011 at 12:29 am

          Sama2x om

  14. yudhi
    August 26, 2011 at 5:11 pm

    mau tanya om : di toolbox untuk vbAcceleratorExplorerBar lambangnya/iconnya seperti apa ya.. karna pas saya buka programnya, gak ketemu di toolboxnya..

    mohon pencerahannya

    • August 30, 2011 at 11:00 am

      Komponen vbAcceleratorExplorerBarnya di add secara manual om ke toolboxnya, karena bukan komponen standar dot NET

      • yudhi
        September 3, 2011 at 2:03 am

        gak bisa di add.. timbul error

        the tyope library d:\accExplorerBar.tlb could not be load..

        Mohon pencerahannya

        • September 4, 2011 at 6:24 am

          Pilihannya adalah .NET Framework Components bukan COM Components

          Lihat gambar

  15. izal
    February 14, 2012 at 8:08 am

    Om, mau nanya nih,
    Ane udah nyobain pake vb 2005,

    nah ane pengen visible menu/sub menu,

    kan kl di menu strip tinggal namamenu.visible=false

    nah kl ini gimana om. . ?

    makasih

    newbi

  16. August 13, 2013 at 10:37 am

    thanks om….
    untuk buat tab bar ber klose di ujung kanan gimana ya om…

  1. April 16, 2014 at 9:13 am
Comments are closed.
%d bloggers like this: