Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti,
sto realizzando la battaglia navale in Visual Basic .NET
Mi sto occupando ora del form in cui l'utente dispone le sue navi. La griglia è composta da ben 150 button (15*10), ma in .NET non è possibile crearli sotto forma di matrice di controllo come in VB6, perciò sto trovando molto difficoltoso e lungo il fatto di copiare tante volte lo stesso codice per tutti i button.
Leggendo in giro ho visto che esistono dei modi alternativi (ovviamente) ma purtroppo non riesco a comprenderli molto bene, in quanto non sono ancora entrato nella programmazione ad oggetti (argomento del prossimo anno ). Gli unici concetti che conosco sono quelli di classe, attributo, metodo, ereditarietà e overloading.
Qualcuno può spiegarmi come risolvere? Quello che voglio fare è questo: l'utente può posizionare UNA barca da due caselle, DUE barche da tre caselle, UNA barca da quattro caselle e UNA da cinque.
Quindi ho intenzione di mettere 5 options, una a barca. In base alla option scelta dall'utente, voglio che il button cliccato si colori di rosso e che si colorino di rosa tutti i button adiacenti, in modo tale da dare all'utente una panoramica delle posizioni che la barca può assumere.
Questo era per spiegare ciò che voglio fare, ma non datemi suggerimenti riguarda come colorarli nel modo giusto (ci sto pensando da solo e voglio finirlo da solo ), vorrei solamente sapere come facilitarmi il compito coi 150 button, che nel form successivo saranno 300 D: (150 in cui l'utente vede le sue navi e 150 in cui sceglie quale posizione avversaria colpire).
Spero di essere stato chiaro, chiedete per qualsiasi dubbio.
Ok, il codice funziona, anche se ovviamente non l'ho capito.
(sono solo io quello che preferisce usare l'assembly per l'estrema e profonda comprensione di quello che si fa?)
Ultima modifica effettuata da emanuele19956 il 17/06/2013 alle 22:10
Ho cambiato strategia ... Ho scritto del codice per creare i 150 button in fase di esecuzione, poichè gestire posizione e dimensione manualmente era un inferno.
Codice sorgente - presumibilmente VB.NET
Dim k, j AsByte
Dim posx, posy As Short
posx = 0
posy = 0
For j = 1 To 10
For k = 1 To 15
Dim Btn AsNew Button()
Btn.Location=New Point(12 + posx, 150 + posy)
Btn.Size=New Point(25, 25)
Btn.Visible=False
Btn.Name="Casella"
Me.Controls.Add(Btn)
posx = posx + 25
Next k
posx = 0
posy = posy + 25
Next j
Ora come potrei fare per il discorso dei click? Non posso scrivere il codice suggeritomi da ultimo perché quei button non esistono, se non in fase di esecuzione, per cui mi trovo in seria difficoltà. Cosa faccio?
A me serve di riconoscere il button che è stato premuto e poi di far accadere la medesima azione ad alcuni dei button circostanti, in base però a quuale button ho cliccato. Chiedete se non mi sono spiegato bene