Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-11-2008, 20:33   #1
immakx
Member
 
Iscritto dal: Feb 2005
Città: Ancona
Messaggi: 177
[Vb '08]Array PictureBox

Per prima cosa, dato che è venerdì sera, buon Weekend a tutti,
poi,
la domanda da novizio di Vb.Net è la seguente: devo realizzare una tabella di picturebox ( 5x5 ) ed eseguo:

Codice:
Dim MyBox(25) As PictureBox
Dim Cnt As Integer = 1
Dim Cnv As Integer = 1
For x As Integer = 1 To 25
   MyBox(x) = PictureBox1 ' picturebox di riferimento
   MyBox(x).Image = Image.FromFile(Application.StartupPath & "\Img\n" & x & ".mxp")
   MyBox(x).Left = ((Cnt - 1) * 70) + 12
   MyBox(x).Top = ((Cnv - 1) * 70) + 12
   MyBox(x).Refresh()
   Cnt = Cnt + 1
   If Cnt = 6 Then
     Cnt = 1
     Cnv = Cnv + 1
   End If
Next
Ma vedo che anche se le picturebox vengono generate giuste ognuna va a riscrivere tutti i valori delle precedenti e cosi alla fine mi trovo con tutte le picturebox uguali e sovrapposte all'ultima ...

cosa mi sto dimenticando ?

Su Msdn non sono riuscito a capirlo...

Grazie
immakx è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 22:13   #2
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Questo codice
Codice:
MyBox(x) = PictureBox1 ' picturebox di riferimento
non crea una nuova PictureBox, ma soltanto una referenza a PictureBox1.
Prova:
Codice:
MyBox(x) = New PictureBox
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 22:56   #3
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
1. Dim MyBox(25) As PictureBox :
Questo array, a meno che tu non l'abbia creato espressamente per un motivo, è superfluo. Ad ogni ciclo aggiungi semplicemente una nuova PictureBox e il risultato non cambia...

2. Manca un esplicito riferimento al contenitore per questi controlli. Male. Io ti consiglio un Panel, che sposti dove vuoi sulla Form... Ne hai solo vantaggi.
Sennò rischi che controlli aggiunti a runtime vadano a sovrapporsi a quelli già presenti sulla Form.

3. Non si eredita MAI chiamando un controllo già presente sulla Form ( il tuo PictureBox1 ). Semplicemente ti fai una classe che eredita da PictureBox e nel costruttore specifichi tutte le proprietà di default che deve avere.

In soldoni :

-> La classe :
Codice:
Public Class MiaPictureBox

    Inherits Windows.Forms.PictureBox

    Public Sub New()

        Me.Width = 160
        Me.Height = 120
        Me.BackColor = Color.Black
        Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
        '...
        '... 

    End Sub

End Class
-> Codice corretto ( senza stravolgere il tuo... ) :
Codice:
        Dim MyBox(25) As PictureBox
        Dim Cnt As Integer = 1
        Dim Cnv As Integer = 1
        For x As Integer = 1 To 25
            Dim PctBox As New MiaPictureBox
            MyBox(x) = PctBox            
            MyBox(x).Image = Image.FromFile(Application.StartupPath & "\Img\n" & x & ".mxp")
            Panel1.Controls.Add(MyBox(x))            
            MyBox(x).Left = ((Cnt - 1) * 70) + 12
            MyBox(x).Top = ((Cnv - 1) * 70) + 12
            MyBox(x).Refresh()
            Cnt = Cnt + 1
            If Cnt = 6 Then
                Cnt = 1
                Cnv = Cnv + 1
            End If
        Next

Ultima modifica di MarcoGG : 07-11-2008 alle 22:59.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 08-11-2008, 10:31   #4
immakx
Member
 
Iscritto dal: Feb 2005
Città: Ancona
Messaggi: 177
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi

In soldoni :
[..]

-> Codice corretto ( senza stravolgere il tuo... ) :
Grazie 1000 !!!
__________________
Max.
AMX - CRESTRON
Junior System Engineer
immakx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
I robot aspirapolvere Neato diventeranno...
Lux e Discovery, AMD e il Dipartimento d...
Qualcomm entra nei datacenter: annunciat...
Amazon prepara il più grande lice...
Un post di Sean Duffy (amministratore ad...
SpaceX ha già lanciato oltre 135 ...
GeForce RTX 5060 Ti 8GB: non piace neanc...
Isar Aerospace Spectrum: il fallimento d...
'State lontani dalla GeForce RTX 5090 Fo...
GJ 251 c è la ''super-Terra'' sco...
Halo è ufficialmente multipiattaf...
Windows 11 25H2 e 24H2: come attivare su...
Brembo Solutions e Microsoft danno vita ...
Migliaia di pacchi Amazon rubati ai legi...
Ex CEO di Stellantis: Musk lascerà...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v