Originariamente inviato da ratal
il discorso del page validating funziona cosi:
valid è impostato a true di default e se non viene modificato significa che è consentito passare alla pagina successiva.la mia funzione o torna false (e quindi impedisce di passare alla pag successiva con conseguente messaggio d'errore) o conferma il true.funziona cosi col wizard di devexpress
Ora ci sono, scusa la mia ignoranza in materia .

per quanto riguarda il discorso del thread ho scordato un "return true" nel copiare il codice.andrebbe aggiunto nella funzione SaveFiles() dopo aver lanciato il thread.
detto questo la funzione SaveFiles, se la directory è corretta, lancia il thread e ritorna subito true facendomi andare istantaneamente nella pagina successiva.
quello che voglio è far si che il passaggio alla pagina successiva avvenga alla fine del thread e non istantaneamente come avviene ora, oppure bloccando il form nel caso non venga utilizzato un thread separato.
A quel punto una soluzione veloce e indolore senza scrivere troppo potrebbe essere questa:

codice:
 private void wizardPage3_PageValidating(object sender, DevExpress.XtraWizard.WizardPageValidatingEventArgs e)
        {
            if (e.Direction == DevExpress.XtraWizard.Direction.Forward)
            {
                if (Directory.Exists(this.buttonEdit2.Text))
                {
                    System.Threading.Thread myThread = new System.Threading.Thread(SaveFiles);
                    myThread.Start();
                    while (myThread.IsAlive)
                    {
                        System.Threading.Thread.Sleep(2);
                        Application.DoEvents();
                    }
                    e.Valid = true;

                }
                else
                {
                    e.Valid = false;
                    e.ErrorText = "errore";    
                }
              
            }
        }


private void SaveFiles()
        {
            //Tuo codice
        }
Scusa ho modificato il tuo in un semplice Thread