Imports DevExpress.XtraBars.Ribbon Imports DigitalData.Modules.Logging Namespace Base ''' ''' 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 _ErrorHandler As ClassErrorHandler Protected ReadOnly Property Logger As Logger 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 Private Sub InitializeComponent() SuspendLayout() ' 'BaseForm ' ClientSize = New Size(284, 261) Name = "BaseForm" ResumeLayout(False) End Sub End Class End Namespace