Imports DevExpress.XtraBars.Ribbon Imports DigitalData.Modules.Logging ''' ''' This BaseClass is used to provide common functionality like the Logger or ErrorHandler to all Forms ''' To use it, create a form and change the `Inherits` statement in FormName.Designer.vb to this form, eg.: ''' ''' Partial Class frmExample ''' Inherits BaseForm ''' ''' ... ''' End Class ''' Public Class BaseForm Inherits Form Private ReadOnly _Logger As Logger Private ReadOnly _ErrorHandler As ClassErrorHandler Protected ReadOnly Property Logger As Logger Get Return _Logger End Get End Property Public Sub New() ' Get the full name of the inheriting form ' so the log messages have the right classname Dim oClassName = [GetType]().FullName ' My.LogConfig is undefined in the designer _Logger = My.LogConfig?.GetLogger(oClassName) _ErrorHandler = New ClassErrorHandler(_Logger) ' When you add something, be careful if it ' depends on a global var like My.LogConfig ' you might need to check for its existence with ? End Sub Public Sub ShowErrorMessage(Exception As Exception) _ErrorHandler.ShowErrorMessage(Exception) End Sub End Class