Seluruh proses pembelian paket perangkat lunak, mencari tahu log audit, membeli pelatihan validasi protokol pembelian pada protokol, mempekerjakan bantuan dan mengisi dokumen 500 - 1.000 halaman untuk 21 CFR Kepatuhan Bagian 11 sama membosankannya dengan pikiran.... Lihat selengkapnya klik disini Memvalidasi Untuk 21 CFR Bagian 11 Dan Perangkat Lunak Manajemen Kalibrasi
Klausa WithEvents dan Menangani membutuhkan formulir dari kita untuk mendeklarasikan variabel objek dan pengendali event saat kita menulis kode kita, jadi tautan dibuat saat kompilasi. Di sisi lain, dengan AddHandler dan RemoveHandler, tautan dibuat dan dihapus saat runtime, yang lebih fleksibel.
Mari kita asumsikan bahwa kita ingin memuat beberapa formulir anak MDI, memungkinkan masing-masing dari mereka dimuat hanya sekali, dan tentu saja tahu kapan salah satu formulir anak ditutup. Karena kami memiliki beberapa formulir untuk memuat, kami ingin menggunakan kata kunci AddHandler dan RemoveHandler sehingga kami dapat fleksibel dan menulis kode minimal yang kami bisa.
Ayo kotor.
1. Dalam setiap formulir anak MDI kita harus mendeklarasikan acara publik.
Form Acara Publik Ditutup (Bentuk ByVal f As)
2. Dalam setiap formulir anak MDI kita harus menggunakan metode Form_Closed yang menangani kelas MyBase.Closed dan meningkatkan acara FormClosed.
Private Sub Form1_Closed (ByVal sender As Object, ByVal e As System.EventArgs) _
Menangani MyBase.Tutup
RaiseEvent FormClosed (Me)
End Sub
3. Pada formulir MDI kami, kami perlu mendeklarasikan dua variabel anggota. Jenis pertama dari Formulir dan jenis yang kedua adalah ArrayList.
Pribadi m_f (0) sebagai Formulir
Private m_sLoadedChildForms As New ArrayList
4. Kita perlu menerapkan metode yang akan mencari bentuk anak MDI yang dimuat. Kami juga akan menggunakan metode ini ketika kami membongkar formulir anak MDI.
Private Function SearchChildForm (ByVal strSearchForm As String, _Optional ByVal idxEventHandler As Long = -1) As Long
Dim i As Long = 0
Untuk i = 0 Ke m_sLoadedForms.Count - 1
If m_sLoadedForms.Item (i) = strSearchForm Lalu
Dim j As Long = 0
Untuk j = m_f.GetLowerBound (0) Ke m_f.GetUpperBound (0)
Jika m_f (j) .Name = strSearchForm Kemudian idxEventHandler = j
Selanjutnya j
Kembali saya
Berakhir jika
Lanjut
Kembali -1
Fungsi Akhir
Private Sub LoadChildForms (Bentuk ByVal f As)
If m_f.GetUpperBound (0)> 0 Lalu
ReDim Preserve m_f (m_f.GetUpperBound (0) + 1)
Berakhir jika
m_f (m_f.GetUpperBound (0)) = f I
f Tidak SearchChildForm (m_f (m_f.GetUpperBound (0)). Name ())> = 0 Lalu
m_f (m_f.GetUpperBound (0)) .MdiParent = Saya
AddHandler m_f (m_f.GetUpperBound (0)) Ditutup, _
AddressOf UnloadChildForm
m_f (m_f.GetUpperBound (0)). Tampilkan ()
m_sLoadedChildForms.Add (m_f (m_f.GetUpperBound (0)). Name)
Lain
If m_f.GetUpperBound (0)> 0 Lalu
ReDim Preserve m_f (m_f.GetUpperBound (0) - 1)
Berakhir jika
Berakhir jika
End Sub
6. Akhirnya kita perlu mengimplementasikan metode untuk mengambil formulir mdi child kita dari daftar array sehingga kita dapat memuatnya lagi jika kita mau.
Private Sub UnloadForm (ByVal sender As System.Object, ByVal e As System.EventArgs)
Redupkan As Long
Dim s As String = sender.GetType (). Name
Redup IndexForEventHandler = -1
i = SearchChildForm (s, IndexForEventHandler)
Jika i> = 0 Kemudian m_sLoadedForms.RemoveAt (i)
Jika IndexForEventHandler> = 0 Lalu
RemoveHandler m_f (IndexForEventHandler) .Tutup, AddressOf UnloadForm
m_f (IndexForEventHandler) = Tidak Ada
Berakhir jika
End Sub
0 komentar:
Posting Komentar