stmikbg-dot-com

Informasi Seputar IT

Archive for July, 2010


atasi overload saat add control dipanel vb.net

Saat kita memanggil sebuah UserControl Class (System.Windows.Forms) pada sebuah panel control jika kita tidak mendeklarasikan user control diatas kelas, tetapi dideklarasi saat control tersebut dipanggil, pada .net user control tersebut akan dimuat berulang-ulang dalam memory. Bisa dilihat pada code dibawah ini

 Private Sub btnEntryPegawai_ItemClick()  Handles btnEntryPegawai.ItemClick
            Dim ctrlcHRD As New ctrlHRD
            Me.pnlUtama.Controls.Add(ctrlcHRD)
            ctrlcHRD.Visible = True
            ctrlcHRD.BringToFront()
 End Sub

Jika logic yg digunakan seperti diatas, control akan dimuat berulang-ulang saat btnEntryPegawai mendapatkan even click. Solusinya bisa kita mendeklarasikan control keseluruhan diatas kelas ( saat form diload) dengan konsekuensi load formnya agak lama. Lantas jika tidak ingin proses load form terganggu kita bisa bikin solusi seperti kode dibawah ini

Private Sub btnEntryPegawai_ItemClick() Handles btnEntryPegawai.ItemClick
        FindControl("ctrlHRD", pnlUtama)
        If Not lFound Then
            Dim ctrlcHRD As New ctrlHRD
            Me.pnlUtama.Controls.Add(ctrlcHRD)
            ctrlcHRD.Visible = True
            ctrlcHRD.BringToFront()
        Else
            Me.pnlUtama.Controls(nIndex).BringToFront()
        End If
    End Sub

Cari dulu nama control dimemory, jika belum ada bisa dipanggil untuk dimuat dimemory, tetapi jika sudah ada tinggal kita show kembali. Ini fungsi untuk mencari control yang telah dipanggil dimemory, silahkan dikembangkan lagi

Public lFound As Boolean
    Public nIndex As Integer
    Public Sub FindControl(ByVal sControlName As String, ByVal cPanel As Windows.PanelControl)
        lFound = False
        Dim nCount As Integer
        nCount = 0
        For Each Control In cPanel.Controls
            If sControlName.Trim = Control.Name.ToString.Trim Then
                lFound = True
                nIndex = nCount
            End If
            nCount = nCount + 1
        Next
    End Sub

Incoming search terms:

  • user control vb net
  • vb net user control
  • tanggal di vb net
  • user control panel vb net
  • user control pada VB net
  • tips dan trik user control di vb net
  • tip tanggal vb net
  • tambah tanggal di vb net 2008
  • tambah tanggal di vb net
  • tambah tanggal dengan vb net