Condividi:        

VB.Net, array withevents

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, Anthony47, axelrox

VB.Net, array withevents

Postdi matrix87 » 21/02/03 23:46

è una domandina un po' tanto tecnica su vb.net, quindi se nn lo conoscete bene mi sa che non capirete tanto...

[solo per esperti vb.nettiani :P]
ho bisogno di fare una scacchiera di picturebox con handling dell'evento click, ma la scacchiera deve essere di dimensioni variabili. vorrei evitare di disegnarla direttamente con l'editor visuale, piuttosto preferirei creare il tutto a runtime. il problema è questo: per farlo ora ho dichiarato un array bidimensionale scacchiera(x,y) as picturebox, ma gli array non si possono dichiarare withevents. quindi, la soluzione più logica sarebbe fare così:
Codice: Seleziona tutto
dim scacchiera(x,y) as picturebox
dim withevents casella1 as new picturebox = scacchiera(1,1)
dim withevents casella2 as new picturebox = scacchiera(2,1)
...
dim withevents casellaN as new picturebox = scacchiera(N1,N2)

private sub casella_click(byVal sender as system.oject, e as system.eventargs) handles casella1.click, casella2.click, casella3.click ... casellaN.click
msgbox("cliccata la picturebox" & sender.name)
end sub

il che risulta però molto lungo, essendo la mia scacchiera di max 26x26 picturebox dovrei dichiarare casella1 to casella676 e mi sembra un po esagerato... qualcuno ha una idea su come sveltire il tutto o un altro modo di dichiarare array withevents?
[/solo per esperti vb.nettiani]

grazie

ps scusate per gli eventuali errori nel codice ma sto scrivendo a memoria :D
the matrix is the world that has been pulled over your eyes to blind you from the truth

special thanks to: notepad, keyboard & mouse
matrix87
Utente Junior
 
Post: 40
Iscritto il: 28/01/03 19:08
Località: milano

Sponsor
 

Postdi piercing » 22/02/03 00:14

ma allora qualcuno lo usa!! :P
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi pjfry » 23/02/03 13:03

non sò se posso esserti utile perchè vb.net non l'ho ancora provato, sono fermo al 6 , cmq provo :D
con vb6 puoi creare un array di controlli in fase di progettazione e poi a runtime aggiungere altri controlli con il comando load
questo array poi gestisce gli eventi senza problemi...
non sò se può andare con una matrice bidimensionale ( forse è questo il problema?)
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi matrix87 » 23/02/03 20:31

pjfry mi sa che sbagli....neanche nel vb6 è possibile dichiarare
Codice: Seleziona tutto
Dim Withevents Array(x) as Object

perchè proprio gli array withevents non si possono dichiarare. se guardi in giro su internet ti accorgi che è così e che molti hanno cercato di farlo :D
cmq tnx
the matrix is the world that has been pulled over your eyes to blind you from the truth

special thanks to: notepad, keyboard & mouse
matrix87
Utente Junior
 
Post: 40
Iscritto il: 28/01/03 19:08
Località: milano

Postdi pjfry » 24/02/03 00:16

non ho parlato di dichiararli così,infatti... questo non sò se si può fare (e se dici di no ci credo :) )
però se crei un array di picturebox in fase di progettazione ( crei un picturebox e poi lo copi e incolli...) gli eventi ci sono :
Codice: Seleziona tutto
Private Sub Picture1_Click(Index As Integer)

End Sub

l'index è quello dell'oggetto che chiama l'evento...
mi risulta che puoi aggiungere oggetti in fase di esecuzione all'array usando load picture1(1),load picture1(2) .... quindi se ho capito cosa cerchi potrebbe andare,no?
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi matrix87 » 24/02/03 13:21

fry ho capito cosa intendi. il mio problema è che se tu disegni da editor visuale le varie caselle e poi gli dai un nome uguale e index diverso lui fa nel codice del form una serie di dim withevents, e poi le ricollega ad un unico array che invece nn può essere dichiarato withevents direttamente. io posso fare così ma sono 676 caselle, quindi è un po' lungo :D
va beh tnx
the matrix is the world that has been pulled over your eyes to blind you from the truth

special thanks to: notepad, keyboard & mouse
matrix87
Utente Junior
 
Post: 40
Iscritto il: 28/01/03 19:08
Località: milano

Postdi pjfry » 24/02/03 13:45

ma non puoi dichiararne solo 2 (tanto per creare l'array) e poi usare load per creare le altre che ti servono? lo metti in un for... mi pare che le carica anche se non le hai dichiarate,quindi ... ;)
cmq insegnami una cosa :P : dove le trovo le dichiarazioni che fà l'editor visuale? io ho provato ad aprire i file di form e di progetto e non c'è quella dim withevents di cui parli... forse il vb6 è diverso e tratta gli array di controlli in un altro modo?
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi matrix87 » 26/02/03 21:18

è decisamente diverso, il codice WYSIWYG non te lo fa vedere, devi aprire il file .frm in blocco note per vederlo. invece in .net vedi tutto perchè lo dichiara come classe ereditaria di windows.forms. devi provarlo, è tutta un altra storia. c'è una versione 30 giorni (mi pare) sul sito microsoft
the matrix is the world that has been pulled over your eyes to blind you from the truth

special thanks to: notepad, keyboard & mouse
matrix87
Utente Junior
 
Post: 40
Iscritto il: 28/01/03 19:08
Località: milano

Postdi pjfry » 26/02/03 21:36

appena ho tempo lo provo :D
il .frm l'avevo apero con notepad ma non c'era traccia di quella dichiarazione,boh?! :neutral:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi matrix87 » 26/02/03 22:52

sisi nella prima parte dove disegna il forum c'è anke la dichiarazione :P
the matrix is the world that has been pulled over your eyes to blind you from the truth

special thanks to: notepad, keyboard & mouse
matrix87
Utente Junior
 
Post: 40
Iscritto il: 28/01/03 19:08
Località: milano


Torna a Discussioni


Topic correlati a "VB.Net, array withevents":


Chi c’è in linea

Visitano il forum: Nessuno e 39 ospiti