Puoi realizzarlo in diversi modi.
Puoi creare diversi form e impostarli tutti con le stesse grandezze, non penso farebbe differenza, anzi per forse sarebbe anche piu' comodo in modo da gestire meglio tutti i controlli.
Invece:
Creandolo su un solo form (anche questo modo puo' essere fatto in diversi modi.)
Potresti creare una serie di casi che va da 0 ad un numero (che corrisponde a quello dell'ultima azione del wizard)
quindi ad esempio...
codice:
Dim numeroform as integer
Private Sub form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Select case numeroform
case 0 ' corrisponde al primo "form" da visualizzare
Me.text = "Wizard Parte 1" 'cambia il titolo del form
Label1.text = "Benvenuto nel Wizard" 'cambia il testo del label
back_button.enabled = false 'disabilita il pulsante back solo nel primo caso
case 1 'case 2 corrisponde al secondo"form" da visualizzare
Me.text = "Wizard Parte 2 destinazione file 'cambia il titolo del form
Label1.text = "Benvenuto nella seconda parte del wizard, scegli la cartella per copiare i file"
back_button.enabled = true
case 2
funzioni ecc
case 3
case..4 e ecc
E richiami i vari casi con i pulsanti Avanti e Indietro, quindi:
Questo è il pulsante per andare avanti:
codice:
Private Sub Button1_next(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Case +=1
End Sub
Questo per andare indietro:
codice:
Private Sub Button2_back(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
case -=1
End Sub
Dovrebbe funzionare correttamente tutto quanto.