I failed to ask my entire question on part 1. Although codeorder gave me the answer
I needed I have one more part which I will put in bold.

I have 3 forms: Form1, Form2 and Form99. Form1 and Form2 both call Form99.
What statement(s) does Form99 use to determine which form called it (Form1 or Form2).




   Which form called me?

Thank You.

Form1 and Form2 have several textboxes - Let's just say TextBox1 and TextBox2.
By using the field sNameOfForm that codeorder said to use I want to use sNameOfForm
to access TextBox1 and Textbox2 .text property using sNameOfForm for the Form Name.

Instead of coding in Form99: MsgBox(Form1.TextBox1.Text)

In other words I want to use the Form Name (sNameOfForm) that was supplied to Form99 and
access the textboxes on either Form1 or Form2 without hardcoding the form name.

Thank you.

You could use form's owner property.

Calling Form99 would be

Form99.Show(Me) ' Me i.e. owner is now Form1

Form99.Show(Me) ' Me i.e. owner is now Form2

To find out who's the caller (i.e. owner), read the owner property:

Private Sub Form99_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

      ' Set form's caption to show the owner
      ' Here the 'Me' refers to Form99
      Me.Text = Me.Owner.Text & " is the owner (caller) of the Form99"

End Sub


See if this helps.

Public Class Form99
    Public selForm As Form = Nothing

    Private Sub frm99_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.TextBox1.Text = CType(selForm.Controls("TextBox1"), TextBox).Text
        Me.TextBox2.Text = CType(selForm.Controls("TextBox2"), TextBox).Text
    End Sub
End Class

All other Forms:

With Form99
            .selForm = Me
        End With

Thank you codeorder and Teme64. Both answers did the trick!