Oppure

Loading
22/10/15 18:52
lupetto77
Ciao Thejuster volevo fare un nuovo progetto e provare a creare dall'inizio come hai fatto tu.
Ho rinominato i controlli come hai fatto nel tuo progetto.
I controlli che ho aggiunto sono, un panel e i 2 button, le pictureBox vengono aggiunti dal costruttore della classe PicturePanel

Quindi ho aggiunto una classe con il nome PicturePanel e messo il codice.

Però in queste righe del Form1:
picturePanel1._images.Add(Prova.Properties.Resources.a);

...
...
_images è sottolineata, ma vedendo il codice sia la classe che la lista sono publiche.
Nel tuo codice nella Form1 non ho visto un istanza per richiamarla, e quindi volevo chiederti come mai?



Ultima modifica effettuata da lupetto77 22/10/15 18:53
aaa
24/10/15 8:38
Pubblica un file zip con il progetto da scaricare così si capisce finalmente cosa fai ...
Ultima modifica effettuata da 24/10/15 9:07
24/10/15 14:15
lupetto77
il file è questo:
mediafire.com/download/b849ot35iere7zm/…

stavo provando a fare lo stesso progetto di Thejust da capo per imparare ma non capisco come fa a richiamare la List<> dal Form1 senza instanziare nulla.
Nel progetto di Thejust il panel si vede diversamente da quello che ho fatto io.
Se potete spiegarmi come fare.
aaa
25/10/15 16:34
lupetto77
Premetto che ho impostato a 5 le pictureBox iniziali (lo scrivo perchè non si sa mai può essere utile come informazione).
Quando premo il BDestro (button) le immagini una volta arrivata all'ultima deve continuare ripartendo dalla prima.
Quando premo il BSinistro (button) le immagini dalla prima riparte dall'ultima fino ad arrivare alla prima.

Per il button BDestro ho fatto cosi:
Offset++;
            Steps = Offset;
            for (int i = 0; i < Controls.Count; i++)
            {
                if (Controls[i].GetType() == typeof(PictureBox))
                {
                    if (Steps >= _images.Count - 1) Steps = -1;
                    Controls[i].BackgroundImage = _images[++Steps];
                    //Steps++;
                }
            }


I problemi sono 2
1. Nella prima pictureBox non parte subito dalla seconda ma dalla terza per poi continuare bene.
2. E' che arriva all'ultima ricomincia ma fa solamente un giro poi non continua più.

Per il pulsante BSinistro il codice è questo:
Offset--;
            Steps = Offset;
            for (int i = 0; i < Controls.Count; i++)
            {
                if (Controls[i].GetType() == typeof(PictureBox))
                {
                    if (Steps < 1) Steps = _images.Count;
                    Controls[i].BackgroundImage = _images[--Steps];
                    //Steps--;
                }
            }


Ma il problema è che una volta premuto il pulsante nella prima pictureBox viene messa l'ultima ma mi scombina le altre sulla destra e in più non continua a ruotare.
aaa
26/10/15 8:54
Thejuster


Riguardo alle pictureBox, Assicurati che nelle priprieta' sia impostato 4 e non 5.
Anche lo 0 viene contato.
Visto che ti trovi, modifica anche direttamentr il valore della variabile
NumPictureBox.
Cioe' la prima varibile subito dopo l'inizializzazione dei componenti.

Se sballa il conteggio o continua a scorrere significa che l'indice e settato male.
Ultima modifica effettuata da Thejuster 26/10/15 8:57
mire.forumfree.it/ - Mire Engine
C# UI Designer
26/10/15 23:58
lupetto77
Ho impostato 5
private int _numpicbox = 5; //Per il numero di pictureBox


Io vorrei far girare sempre le immagini sia in un verso che nell'altro, ho provato cosi:
public void MoveRight()
{
   Offset++;
   Steps = Offset;
   for (int i = 0; i < Controls.Count; i++)
   {
       if (Controls[i].GetType() == typeof(PictureBox))
       {
           if (Steps >= _images.Count - 1) Steps = -1;
           Controls[i].BackgroundImage = _images[++Steps];
           //Steps++;
       }
   }
}


ma si ferma dopo un giro.
Mi puoi consigliare per non riesco proprio farlo grazie.
aaa
27/10/15 13:53
Thejuster
Per ottenere quello che dici, serve un'altro algoritmo. questo non va bene.
Questo è scritto per arrivare all'ultimo frame e fermarsi per poi abilitare il reverse.
Non è stato concepito per continuare a scorrere.

Prova a ragionare con la tua testa.
Come faresti per farlo girare in continuazione?

prova a mostrarmi qualcosa di tuo
mire.forumfree.it/ - Mire Engine
C# UI Designer
15/03/16 1:33
lupetto77
Ciao Thejuster scusami per il ritardo di risposta, ma ho avuto problemi ora risolti, e sono di nuovo qui.

Ti posto il codice del progetto che ho fatto per far ruotare le immagini, e funziona (se c'è un modo migliore (o corretto) se ti va ti spiegarmelo ti sarei grato) ma c'è un problema.

Il link è questo:
mediafire.com/download/uwr9evo730xc8j8/…

Per questo esempio facciamo che si può solo cliccare sulla pictureBox1.
Quando clicco sulla pictureBox1 con l'immagine sotto ad esempio A deve scrivere sulle label un testo.
Esempio label1.Text = "Frase1"
label2.Text = "Frase2"
Se premo sul pulsante per far ruotare le immagini spostando nella pictureBox1 l'immagine B, nelle label deve scrivere:
Esempio label1.Text = "Frase3"
label2.Text = "Frase4"

e cosi via, ma non riesco, nel progetto nell' evento clic della pictureBox c'è il codice di prova che ho fatto, ma non funziona.

Un aiuto per favore, grazie in anticipo.
Ultima modifica effettuata da lupetto77 15/03/16 1:33
aaa