WithEvents and Handles clause needs sort us to declare the item variable and also the function handler as we publish our code, so linkage is designed upon compilation. On the other hand, with AddHandler and RemoveHandler, linkage is produced and taken off at runtime, which can be more flexible.
Let’s believe that we want to load numerous MDI boy or girl types, allowing each of these to be loaded only once, not to mention to understand when one of many little one kinds is closed. Considering that Now we have a number of types to load we would like to use the AddHandler and RemoveHandler key phrases so we can be versatile and produce the negligible code we will.
Permit’s get dirty.
one. In Each and every MDI little one form we need to declare a public celebration.
Public Function FormClosed(ByVal f As Type)
two. In Each and every MDI boy or girl sort we need to use the Form_Closed system which handles the MyBase.Shut course and raise the FormClosed occasion.
Non-public Sub Form1_Closed(ByVal http://query.nytimes.com/search/sitesearch/?action=click&contentCollection®ion=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=Homepage#/토토사이트 sender As Item, ByVal e As Procedure.EventArgs) _
Handles MyBase.Shut
RaiseEvent FormClosed(Me)
Conclusion Sub
3. On our MDI kind we have to declare two member variables. The very first’s of variety Type and the 2nd’s sort is ArrayList.
Private m_f(0) as Sort
Private m_sLoadedChildForms As New ArrayList
4. We need to employ a way the will research the MDI boy or girl forms which can be loaded. We’ll also use this process once we unload the MDI youngster types.
Personal Function SearchChildForm(ByVal strSearchForm As String, _Optional ByVal idxEventHandler As Very long = -one) As Long
Dim i As Prolonged = 0
For i = 0 To m_sLoadedForms.Rely – one
If m_sLoadedForms.Item(i) = strSearchForm Then
Dim j As Extended = 0
For j = m_f.GetLowerBound(0) To m_f.GetUpperBound(0)
If m_f(j).Title = strSearchForm Then idxEventHandler = j
Subsequent j
Return i
Conclude If
Future
Return -1
Conclude Operate
5. We have to employ a way to load the mdi boy or girl kinds and make use of the SearchChildForm technique to be able never to load a similar mdi baby kind second time.
Private Sub 먹튀 LoadChildForms(ByVal f As Form)
If m_f.GetUpperBound(0) > 0 Then
ReDim Maintain m_f(m_f.GetUpperBound(0) 1)
m_f(m_f.GetUpperBound(0)) = file I
file Not SearchChildForm(m_f(m_f.GetUpperBound(0)).Identify()) >= 0 Then
m_f(m_f.GetUpperBound(0)).MdiParent = Me
AddHandler m_f(m_f.GetUpperBound(0)).Shut, _
AddressOf UnloadChildForm
m_f(m_f.GetUpperBound(0)).Demonstrate()
m_sLoadedChildForms.Increase(m_f(m_f.GetUpperBound(0)).Name)
Else
ReDim Maintain m_f(m_f.GetUpperBound(0) – one)
6. Ultimately we must carry out a way to choose out our mdi child form with the array listing so we could load it once again if we want.
Personal Sub UnloadForm(ByVal sender As Technique.Item, ByVal e As Process.EventArgs)
Dim i As Long
Dim s As String = sender.GetType().Identify
Dim IndexForEventHandler = -1
i = SearchChildForm(s, IndexForEventHandler)
If i >= 0 Then m_sLoadedForms.RemoveAt(i)
If IndexForEventHandler >= 0 Then
RemoveHandler m_f(IndexForEventHandler).Closed, AddressOf UnloadForm
m_f(IndexForEventHandler) = Absolutely nothing