Ah, when you call ShowDialog() on the child form dialog, it creates a new instance of the child form and then shows it. So, if you want to set the text and detail dynamically, you'll need to pass them over in the constructor of the form. So, your constructor would take 2 parameters (both string) one for the text, and one for the detail. Then, there is a ParamArray of arguments on the ShowDialog() cal that gets passed to the constructor. Looks like this:
Dim lcTitle As String = "Editing Customer..."
Dim lcDetail As String = "TEST"
If Me.ShowCustomerEdit.ShowDialog(lcTitle, lcDetail) = Windows.Forms.DialogResult.OK Then
Try
CustomerBO1.Save()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Else
CustomerBO1.Undo()
End If
Also notice I used Undo() rather than RejectChanges(). RejectChanges is like calling RejectChanges() directly on the CurrentDataTable of the business object, while Undo() raises the BeforeUndo(), AfterUndo() events and refreshes all of the bounds controls when it's done (so you don't have to call Refresh(), either).