Title probably makes no sense :)

I have a single picturebox button that I will be using to open new forms. Is there a way to set a variable and then have the button open the form name included in the variable

I really dont know where to start as every variable I set can't use the .show.

I'm guessing I have to set the variable to the current object but I'm lost.

Recommended Answers

All 5 Replies

You need to create a variable that will store a reference (if that's the right terminology, I'm not a VB pro) to the form you want to show. The variable should be of type Windows.Forms.Form .

In the following example, Form2 would be the name of the form you want your picturebox to open:

' This represents whatever variable you use to select a form.
    ' Obviously it would normally be set based on some other factor.
    Dim whichForm As Integer = 1

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

        'This variable is what you will use to reference and show the form
        Dim formName As Windows.Forms.Form

        ' I used a Select Case to choose
        Select Case whichForm
            Case 1
                formName = Form2
        End Select

        ' Make sure to check that this is actually set -- I left it out.
        formName.Show()

    End Sub

Hope that helps!
- Z

you could create an overloaded New function in your form just like

Public Sub New (byval frmName as string)
'what ever you wanna do with the name
End Sub

and you call that form by doing

Dim newFrm as New Form2(myName)
newForm.Show

@EvolutionFallen works great! thanks man.

Actually really simple when you get down to it, I was making it much more complex than it needed to be.

@GeekByChoice, I'll check out your suggestion too.

Thanks again!

then please mark the thread as solved ;)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.