Мне пришлось принять довольно похожее решение по проектированию, и я решил, что лучше всего будет поделиться соединением из одного основного объекта и передать его в Forms, вызвав перегруженный Show () - метод.
Public Overloads Sub Show(ByVal mainController As MyController)
_handedController = mainController
End Sub
MyController - это класс, который содержит несколько важных вещей, таких как DB-Connection и т. Д.