Någon som kan visa mig hur man gör Load vb.Net? <code> ska man vara lite kinkig så ska väl loopen vara från 0-7 (dvs 8 platser). Tack Per, skall testa. <b>ska man vara lite kinkig så ska väl loopen vara från 0-7 (dvs 8 platser).</b> Thomas : Tusen tack för all förklaring. Nåt åt det här hållet?Någon som kan visa mig hur man gör Load vb.Net?
For i = 1 To 9
Load Command1(i)
Command1(i).Left = Command1(i - 1).Left + Command1(i - 1).Width
Command1(i).Visible = True
Next iSv: Någon som kan visa mig hur man gör Load vb.Net?
Dim buttons(8) As Button
For i As Integer = 0 To 8
buttons(i) = New Button()
Me.Controls.Add(buttons(i)) ' Har för mig att denna rad behövs också, den
' lägger till kontrollen till formulärets Controls-collection
If i > 0 Then
buttons(i).Left = buttons(i - 1).Left + buttons(i - 1).Width
buttons(i).Visible = True
End If
Next i
</code>Sv:Någon som kan visa mig hur man gör Load vb.Net?
Sv: Någon som kan visa mig hur man gör Load vb.Net?
Kristian: Det finns inget som heter ska!
Sen måste det finnas en commandobutton att ladda och den är 0.
Testa!Sv: Någon som kan visa mig hur man gör Load vb.Net?
Vem säger att det ska vara 8 "platser"? Per skrev 1 To 9, dvs 9 st, och Per skrev 0 To 8, dvs 9 st.
ThomasSv:Någon som kan visa mig hur man gör Load vb.Net?
Precis, i gamla VB (VB6) fanns syntaxet "1 to 9" men det finns inte kvar i VB.Net, däremot så är arrayerna nollbaserade i VB.Net, men går ändå till maxvärdet, dvs
<code>
Dim a(8) as integer
</code>
innehåller 9 element (0 t o m 8)...skälet lär väl ha varit bakåtkompatibilitet, men jag tycker det är en dålig lösning :-(
Per Persson:
I .Net behövs det inte ett "noll:te" element att klona, som det gjorde i VB6. Det var därför jag skrev om din kod lite grand, bl a med IF-satsen eftersom det med min kod inte förutsätts att det redan finns en kontroll på formuläret. Glömde skriva det som förklaring i mitt ursprunliga inlägg...
Sen inser jag nu att du antagligen ville ha tio knappar, men det fixar du lätt själv i min kod....Sv: Någon som kan visa mig hur man gör Load vb.Net?
Nu vet jag exakt, tack!
Nästa fråga:
Hur kommer jag in i Click händelsen.Sv:Någon som kan visa mig hur man gör Load vb.Net?
Private buttons(9) As Button
Private Sub CreateButtons()
For i As Integer = 0 To 8
buttons(i) = New Button()
Me.Controls.Add(buttons(i))
' Registrera metoden nedan som eventhandler för denna knapps Click-event
AddHandler buttons(i).Click, AddressOf Command_Click
If i > 0 Then
buttons(i).Left = buttons(i - 1).Left + buttons(i - 1).Width
buttons(i).Visible = True
End If
Next i
End Sub
Private Sub Command_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim senderindex As Integer = -1
' Luska ut vilken knapp som tryckts på
For i As Integer = 0 To 8
If sender Is buttons(i) Then
senderindex = i
End If
Next
' Gör rätt sak för den aktuella knappen
Select Case senderindex
Case Is < 0
' Undrans vad det var för knapp egentligen?
Case 1
' Kod för knapp 1
Case 2
' Kod för knapp 2
' etc
End Select
End Sub