16/03/16 14:37
Thejuster
puoi mediare alle strutture ed assegnare un riferimento ad ogni immagine che avrà un tag o come dire un un nome.
Che al click sarà visualizzato sulla label.
un esempio è:
Al form load. Invece di aggiungere direttamente un elemento nella lista
fai in questo modo
Quando scorri le immagini:
Al click sulle pictureBox;
In questo modo dovrebbe funzionarti.
In pratica le pictureBox hanno un campo nelle proprietà chiamato Tag.
in quel campo puoi scriverci riferimenti o qualcosa su cui tenere a memoria.
anche un appunto esempio.
Quando scorri, devi fare in modo di applicare ad ogni pictureBox il suo relativo Tag recuperato dalla struttura.
Così al Click, verrà mostrato il Tag che la pictureBox contiene.
Puoi anche crearti un controllo ereditato ed inserire quanti campi ti fanno comodo.
oppure al tag puoi aggiungere un separatore di stringa,
e splittare il contenuto per poi recuperare un array.
esempio:
Che al click sarà visualizzato sulla label.
un esempio è:
public struct _immagini { public Image img; public string riferimento; } List<_immagini> Immagini = new List<_immagini>();
Al form load. Invece di aggiungere direttamente un elemento nella lista
immagini.Add(Properties.Resources.A); immagini.Add(Properties.Resources.B); immagini.Add(Properties.Resources.C); //ecc. ecc.
fai in questo modo
//preparo la struttura _immagini img = new _immagini(); img.img = Properties.Resource.A; img.riferimento = "Lettera A"; Immagini.Add(img);
Quando scorri le immagini:
private void btnSinistra_Click(object sender, EventArgs e) { // Richiamo il metodo per spostare di uno la posizione RuotaASinistra(1); // Visualizzo nelle pictureBox le immagini ruotate int conta = 0; for (int i = Controls.Count - 1; i >= 0; i--) { if (Controls[i].GetType() == typeof(PictureBox)) { //Così Controls[i].BackgroundImage = Immagini[conta].img; Controls[i].Tag = Immagini[conta].riferimento; conta++; } } } private void btnDestra_Click(object sender, EventArgs e) { // Richiamo il metodo per spostare di uno la posizione RuotaADestra(1); //// Visualizzo nelle pictureBox le immagini ruotate int conta = 0; for (int i = Controls.Count - 1; i >= 0; i--) { if (Controls[i].GetType() == typeof(PictureBox)) { //Così Controls[i].BackgroundImage = Immagini[conta].img; Controls[i].Tag = Immagini[conta].riferimento; conta++; } } }
Al click sulle pictureBox;
private void pictureBox1_Click(object sender, EventArgs e) { label1.Text = pictureBox1.Tag.ToString(); //Applico il testo recuperato dal tag. }
In questo modo dovrebbe funzionarti.
In pratica le pictureBox hanno un campo nelle proprietà chiamato Tag.
in quel campo puoi scriverci riferimenti o qualcosa su cui tenere a memoria.
anche un appunto esempio.
Quando scorri, devi fare in modo di applicare ad ogni pictureBox il suo relativo Tag recuperato dalla struttura.
Così al Click, verrà mostrato il Tag che la pictureBox contiene.
Puoi anche crearti un controllo ereditato ed inserire quanti campi ti fanno comodo.
oppure al tag puoi aggiungere un separatore di stringa,
e splittare il contenuto per poi recuperare un array.
esempio:
Tag = "Frase 1|Frase 2|Frase 3"; string[] t = Tag.Split('|'); label1.text = t[0]; label2.text = t[1]; label3.text = t[2];
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer