Ciao
Certo che puoi, basta dichiarare il costruttore come privato, e poi creare un metodo statico Show (o come vuoi chiamarlo) che mostri la tua messagebox:
Public Class MyMessageBox
Inherits Form
' Private, così non è possibile chiamarlo dall'esterno
Private Sub New()
End Sub
' Shared (statico), così va richiamato senza un'istanza
Public Shared Shadows Function Show(Param1 As String, Param2 As String) As DialogResult
' Inizializza quello che ti serve...
Return (New MyMessageBox()).ShowDialog()
End Function
End Class
Quindi a questo punto la usi così:
MyMessageBox.Show("arg1", "arg2")
E questo codice non compila:
Dim mmb As New MyMessageBox()
Luca