Also, you might want to consider checking a Form type using strong typing instead of the GetType.Name -
So instead of:
- Code: Select all
Select Case JiwaForm.GetType.Name
Case "SalesOrderEntryForm"
SOUI = DirectCast(JiwaForm, JiwaSalesUI.SalesOrder.SalesOrderEntryForm)
AddHandler SOUI.SalesOrder.SalesOrderLineAdded, AddressOf SOLineAdded
Case "SalesQuoteEntryForm"
QOUI = DirectCast(JiwaForm, JiwaSalesUI.SalesQuote.SalesQuoteEntryForm)
AddHandler QOUI.SalesQuote.SalesQuoteLineAdded, AddressOf QOLineAdded
End Select
You could use:
- Code: Select all
If TypeOf JiwaForm Is JiwaSalesUI.SalesOrder.SalesOrderEntryForm Then
Dim SOUI = DirectCast(JiwaForm, JiwaSalesUI.SalesOrder.SalesOrderEntryForm)
AddHandler SOUI.SalesOrder.SalesOrderLineAdded, AddressOf SOLineAdded
ElseIf TypeOf JiwaForm Is JiwaSalesUI.SalesQuote.SalesQuoteEntryForm Then
Dim QOUI = DirectCast(JiwaForm, JiwaSalesUI.SalesQuote.SalesQuoteEntryForm)
AddHandler QOUI.SalesQuote.SalesQuoteLineAdded, AddressOf QOLineAdded
End If
That way if the name of our class ever changes, it will fail to compile instead of simply not adding your handlers.
It's your choice, and you may have a good reason to use the GetType.Name instead - but my instinct is always to use strong typing when possible.
Mike