Il problema è il seguente.
Vorrei impostare le proprietà dei controlli contenuti nei form dell'applicazione attraverso un ciclo come il seguente.
Il ciclo (molto semplificato) viene eseguito per ogni form dell'applicazione ma se avviando direttamente da una routine funziona tutto alla perfezione, se avvio tramite un Thread non viene generata nessuna eccezione ma le proprietà non vengono modificate.codice:For Each c As Control In RicercaControlliFiglio(Form) If TypeOf c Is Button Then (c, Button).FlatStyle = CType(DV(0).Item(5).ToString, Integer) End if Next
Il thread viene avviato nel modo seguente
in fase di avvio dell'applicazione viene richiamata la routine 'ThreadModificaProp'codice:Public Sub ThreadModificaProp () Try 'controlliamo se il thread è in esecuzione "per non lanciare una seconda copia" If Not (ThModificaProp Is Nothing) AndAlso ThModificaProp .IsAlive Then 'avviso utente Else ThModificaProp = New Thread(AddressOf MiaRoutineCiclo) ThModificaProp .SetApartmentState(ApartmentState.STA) 'imposta un nome ThModificaProp .Name = "ThModificaProp " 'lanciamo il thread ThModificaProp .Start() End If Else End If Catch ex As Exception MsgBox(Err.Description.ToString) 'Gestione Errore End Try
ma niente.
Se avete consigli o bisogno di ulteriori informazioni, fatemi sapere

Rispondi quotando