Forum - C# / VB.NET
- creare molti controlli button - Pagina 2
Pagine: [ 1 2 ]
|
Il Totem (Admin )
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
Ovviamente non puoi usare Handles, perchč i pulsanti non esistono in fase di compilazione. Devi invece usare AddHandler che č spiegato sempre nel link sopracitato. Poi nell'evento click converti sender in un Button (o in un Control, come vuoi) e cambi il suo colore.
Codice sorgente - presumibilmente VB.NET
Dim B As Button = DirectCast( sender, Button)
If B.BackgroundColor = Colors.White Then
B.BackgroundColor = Colors.Black
Else
B.BackgroundColor = Colors.White
End If
John (Ex-Member)
Pro
Messaggi: 191
Iscritto: 18/11/2007
guarda, io ci ero riuscito perfettamente ieri sera, poi non ho pių avvisato qui.
Allora, per creare i button:
Codice sorgente - presumibilmente VB.NET
Private Sub genera_Click( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles genera.Click
Dim B As Button
timesx = volteX.Text
timesy = volteY.Text
For J As Byte = 1 To timesy
For I As Byte = 1 To timesx
B = New Button
With B
'Imposta il nome
.Name = "Button" & J & I
'Imposta le dimensioni
.Size = New Size( 15 , 15 )
'Imposta le coordinate
.Location = New Point( I * 15 , J * 15 )
'Aggiunge l'evento
AddHandler .Click , AddressOf Button1_Click
'Imposta il colore
.BackColor = Color.White
End With
'Lo aggiunge al form
Me .Controls .Add ( B)
Next
Next
End Sub
Per colorare il bottone:
Codice sorgente - presumibilmente VB.NET
Private Sub Button1_Click( ByVal sender As System.Object , ByVal e As System.EventArgs )
If sender.backcolor = Color.White Then
sender.backcolor = Color.Black
Else
sender.backcolor = Color.White
End If
End Sub
Per controllare se č nero:
Codice sorgente - presumibilmente VB.NET
For i As Byte = 1 To timesx
For j As Byte = 1 To timesy
name = "Button" & j & i
If DirectCast( Me .Controls .Item ( name) , Button) .BackColor = Color.Black Then
'č nero, qui lavoro di salvataggio...
End If
Next
Next
Grazie ancora!!