http://msdn.microsoft.com/en-us/library/b86b82w0.aspx

Introduction to Objects in Visual Basic
Provides an introduction to the terms and concepts used in object-oriented programming.

Understanding Classes
Provides an overview of classes and an example of how to define a class.

Creating and Using Objects
Shows how to create and use instances of classes.

Collections in Visual Basic
Provides an overview of collections.

Events in Visual Basic
Shows how to declare and use events.

Delegates in Visual Basic
Shows how to declare and use delegates.

Interfaces in Visual Basic
Describes what interfaces are and how you can use them in your applications.

Inheritance in Visual Basic
Describes how to define classes that serve as the basis for other classes.

Shared Members in Visual Basic
Describes members that can be used without instances.

Early and Late Binding
Describes binding, which is performed by the compiler when an object is assigned to an object variable, and the differences between early-bound and late-bound objects.

Public Interface ICommonFunctions
Sub saverecord()
End Interface

Public Class frmSaleInvoice
Inherits System.Windows.Forms.Form
Implements ICommonFunctions            ‘<—– our Interface

…… Normal Form objects……

Public Sub saverecord() Implements ICommonFunctions.saverecord

….. The Function Body ….

End Sub

End Class

‘Similarly other forms

Public Class frmSomeOtherForm
Inherits System.Windows.Forms.Form
Implements ICommonFunctions            ‘<—– our Interface

…… Normal Form objects……

Public Sub saverecord() Implements ICommonFunctions.saverecord
….. The Function Body ….

End Sub

End Class

‘Then in MDI on a button click

If Not me.ActiveMDIChild Is Nothing then
DirectCast(Me.ActiveMdiChild,ICommonFunctions).saverecord()  ‘<— Call the function
End If

# remember you are using ActiveMDIChild and not ActiveForm so the child forms must have their MDIParent set to the MDI form