Capture a Reference to a UserControl

Capture a Reference to a UserControl

Many programmers are familiar with declaring an object variable in class modules and other places to capture events from a form and handle them in a generic way:

 Private WithEvents m_Form As Form

It might be useful to do this for user controls as well, but you need a reference to the UserControl object. Getting this reference proves harder than it should be. This code sets up the m_UserControl variable:

 ' DeclarationsPrivate WithEvents m_UserControl As UserControlPrivate Declare Sub CopyMemory Lib "kernel32" _Alias "RtlMoveMemory" (pDest As Any, _pSource As Any, ByVal ByteLen As Long)Private Sub UserControl_Initialize()' Code to set up the m_UserControl variableDim UC As UserControlCopyMemory UC, UserControl, 4Set m_UserControl = UCCopyMemory UC, 0&, 4End Sub

Once this code has been executed, the m_UserControl events fire as expected. Using this technique and sharing the created reference, you can sink the UserControl events in a class module, allowing development of generic event handlers for your controls.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist