Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[vb.net] incremento ciclo per picture box

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[vb.net] incremento ciclo per picture box

Messaggioda LupinIII » lun feb 18, 2008 6:51 pm

Dim open As New OpenFileDialog

open.Title = "Apri le tue foto"
open.InitialDirectory = "d:/documenti/Bruno_foto"
open.Filter = "File Immagine| *.jpg; *.jpeg; *.tif; *.tiff"
open.Multiselect = True

If open.ShowDialog = Windows.Forms.DialogResult.OK Then

PictureBox1.Image = Image.FromFile(open.FileName)

End If

all'interno del ciclo non riesco ad incrementare il valore della picture box.
se creo un contatore non lo posso associare all'oggetto picture box, e creando un while o un altro ciclo iterattivo non so come dargli la condizione di uscita.
stavo pensando di creare una sub che dia al contatore il numero di file presenti sulla periferica, e mi esca solamente quando il numero delle foto caricate è uguale al numero di file jpeg o tif presenti.
intanto pero' devo risolvere il problema della picture box.
mi date una mano
(lo scopo è quello di leggere dei file fotografici dati iningreso, e posizionarli su delle picture box all'interno della form. )
LupinIII
Avatar utente
LupinIII
Senior Member
Senior Member
 
Messaggi: 387
Iscritto il: gio feb 12, 2004 11:19 am
Località: Belluno

Messaggioda M@ttia » lun feb 18, 2008 8:32 pm

Scusa ma di quale ciclo for stai parlando esattamente?

Se ho capito quello che vorresti fare, dovresti creare PictureBox(0) (cioè array, o index che dir si voglia) e poi caricare una nuova picturebox e assegnargli l'immagine, finché ci sono immagini (l'index dell'array poi è quello del ciclo for).
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda LupinIII » mar feb 19, 2008 9:06 am

vorresti dire una cosa cosi'?
correggimi gli errori
dichiaro una var di tipo array.

Public Class Form1

Private Sub cmdbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbutton.Click


Dim listafoto(4) As Single
Dim open As New OpenFileDialog
Dim i As Integer

open.Multiselect = True
open.Filter = ("File immagini |*.jpeg; *.tif")

If open.ShowDialog = Windows.Forms.DialogResult.OK Then

For i = 0 To 4

'non riesco ad associare al vettore l'apertura del file

listafoto(i) = Image.FromFile(open.FileName)

'dovrei assegnare alla picture box l'elemento del vettore alla posizione "i"

PictureBox1 = listafoto(i)
i = i + 1
If listafoto(i) = 4 Then
Exit For

End If
Next
End If

End Sub
End Class
LupinIII
Avatar utente
LupinIII
Senior Member
Senior Member
 
Messaggi: 387
Iscritto il: gio feb 12, 2004 11:19 am
Località: Belluno


Messaggioda LupinIII » mar feb 19, 2008 10:34 am

Oppure cosi?
ma ho sempre quel problema. ad un vettore non posso passare una classe system.form....

Public Class Form1

Private Sub cmdbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbutton.Click


Dim PictureBox(4) As Single
Dim open As New OpenFileDialog
Dim i As Integer

open.Multiselect = True
open.Filter = ("File immagini |*.jpeg; *.tif")

If open.ShowDialog = Windows.Forms.DialogResult.OK Then

For i = 0 To 4

PictureBox(i) = Image.FromFile(open.FileName)

i = i + 1

If picturebox(i) = 4 Then
Exit For

End If
Next
End If

End Sub
End Class
LupinIII
Avatar utente
LupinIII
Senior Member
Senior Member
 
Messaggi: 387
Iscritto il: gio feb 12, 2004 11:19 am
Località: Belluno

Messaggioda M@ttia » mar feb 19, 2008 5:28 pm

Ok allora premetto che conosco solo VB6 e C++, quindi mi scuso se magari la mia sintassi fosse un pochino "sbagliata", ma credo che a te interessi capire come fare, quindi provo a spiegartelo nel "mio" vb.net [bleh]


Nel Form1 creo una picturebox di nome CasellaImmagine e con index=0: questo significa che nel codice la richiamerò come CasellaImmagine(0) e, se ne voglio caricare una nuova "uguale" all'originale, mi basta eseguire il comando Load CasellaImmagine(1), ecc.

Codice: Seleziona tutto
Dim CasellaApri As New OpenFileDialog

CasellaApri.Multiselect = True
CasellaApri.Filter = ("File immagini |*.jpeg; *.tif")
If CasellaApri.ShowDialog != Windows.Forms.DialogResult.OK Then Exit Sub


Dim NomiImmagini() As String = CasellaApri.FileNames

For i=1 to NomiImmagini.lenght

 load CasellaImmagine(i) (+ ev. spostarla dove ti piace, ad es. di fianco a quella prima)

 CasellaImmagine(i).picture = NomiImmagini(i)

Next i
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda LupinIII » mar feb 19, 2008 6:23 pm

provo a convertire le istruzioni.
ti dico la verità, sto facendo una fatica cane a programmare in vb.net.
io conoscevo un po' di vb6.
ho dovuto reimparami tutto da capo, ma ca440 che fatica.
non so se è meglio che mi reimpari vb 6.
capisco le istruzioni una volta scritte, ma non riesco a buttarle giù. con tutte ste' sotto classi. chi se le ricorda quando servono??
anche .lenght.. chi pensava ??
LupinIII
Avatar utente
LupinIII
Senior Member
Senior Member
 
Messaggi: 387
Iscritto il: gio feb 12, 2004 11:19 am
Località: Belluno


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising