Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
11/01/17 12:17
cuore napoletano
Buongiorno.
ho una domanda riguardo al seguente codice :

Dim contatore As Integer = 1
For Each Pulsante As Control In Me.Controls
If TypeOf Pulsante Is TextBox Then
Pulsante.Text = contatore
contatore = contatore + 1
End If
Next

Perchè procede dall'ultima texbox fino alla prima e come fare per ottenere l'ordine opposto?
Grazie saluti
aaa
11/01/17 19:49
Thejuster
(cià Cumpà;)

L'ordine degli elementi contenuti nel Form padre vengono enumerati in un modo diverso
da come si può pensare, Quello che ci inganna è proprio il fatto di avere TextBox1,TextBox2,TextBox3.

Ma in realtà vengono enumerati in
TextBox3,
TextBox2,
TextBox1

E molto semplice, Basta eseguire un cast sull'enumeratore e invertire l'ordine
Con un uso intermedio di Linq si risolve tutto :k:

Chiedo scusa, Ma non me la cavo bene in Vb.net
Preferisco scrivere la soluzione in C# e magari puoi convertire il codice con uno dei tanti servizi
online di CodeConverter


//Creo l'enumeratore e ottengo un cast su tutti i controlli del form
 IEnumerable<Control> controls = this.Controls.Cast<Control>();

 //Fase 1:  Inverto l'ordine
 controls = controls.Reverse();

 //Fase 2: Seleziono e raggruppo tutti gli elementi che sono le TextBox ordinandole
 List<Control> c = controls.GroupBy(x => x.GetType() == typeof(TextBox)).Select(grp => grp.ToList()).FirstOrDefault().ToList();

//Semplice prova
MessageBox.Show(c[0].Name);



in questo modo ti risparmi la noia di fare tutto il ciclo per selezionare elemento x elemento
e verificarne il tipo.
mire.forumfree.it/ - Mire Engine
C# UI Designer
12/01/17 10:40
cuore napoletano
ciao, forse anche tu di Napoli?
Grazie per la tua risposta.Ho notato che creando controlli a volo viene rispettato l'ordine di inserimento
e quindi farò cosi.
Grazie ancora hai un caffè pagato....:):):) ciaooo
aaa
12/01/17 11:14
Thejuster
Si, precisamente di Aversa ;)

Non avevo mi fatto caso che a ruintime l'enumerazione cambiasse.
Ovviamente si impara giorno dopo giorno.

Chiudo, Buon proseguimento.
mire.forumfree.it/ - Mire Engine
C# UI Designer