Kanske såhär? Tack för hjälpen, så lätt det verkar va, när man kan... Var så lite så. :)Lägga till nya objekt på formen när programmet körs?
Hej,
försöker förstå hur man kan använda objekt som ligger i toolbox , har en fråga kring detta. Jag vill lägga ut varierande antal button på formen, antalet knappar matas in i textruta och händelsen startas med en knapptryckning.
När jag kör koden:
Public Class Form1
Dim btnNy As Button
Private Sub btn_Click (…)Handles btn1.Click
btnNy.Size = New Size(20, 20)
btnNy.Location = New Point(10, 50)
Controls.Add(Me.btnNy)
End Sub
läggs en knapp ut på formen, men hur göra för att namnge, ge egen location och lägga ut mer än en. Har prövat med en For-Next slinga men det lyckades inte. Jag vill alltså om möjligt slippa att deklarera ett okänt antal knappar för säkerhets skull. Hoppas jag har formulerat frågan så att den går att förstå.
Hälsningar FredrikSv: Lägga till nya objekt på formen när programmet körs?
<code>
Private Sub Button1_Click(...) Handles Button1.Click
Dim a() As String = {"hej", "på", "dig", "din", "gamle", "ål"}
Dim i As Integer
For i = 0 To a.Length - 1
Dim btnny As New Button()
btnny.Size = New Size(50, 20)
btnny.Location = New Point(50 * i, 50)
btnny.Text = a(i)
btnny.name="btn" & a(i)
Controls.Add(btnny)
Next
End Sub
</code>
Eller med en textbox:
<code>
Dim a(TextBox1.Text) As String
Dim i As Integer
For i = 0 To a.Length - 1
Dim btnny As New Button()
btnny.Size = New Size(20, 20)
btnny.Location = New Point(20 * i, 50)
btnny.Text = a(i)
btnny.Name = "btn" & a(i)
Controls.Add(btnny)
Next
</code>
Om du inte vill ha dem i rad så kan du ju typ lägga in punkterna i en array oxå.
Hoppas jag fattade rätt.. ;)
/PeterSv: Lägga till nya objekt på formen när programmet körs?
Det dök upp en följdfråga. Kan jag få de nya knapparna att lyssna efter händelser?
FredrikSv: Lägga till nya objekt på formen när programmet körs?
För att lägga till en handler:
<code>
Dim btnny As New Button()
btnny.Size = New Size(100, 20)
btnny.Location = New Point(20, 50)
btnny.Text = "Click me"
btnny.Name = "btn1"
Controls.Add(btnny)
AddHandler btnny.Click, AddressOf Me.clicking 'här läggs handlern till
</code>
med en funktion som kan se ut såhär:
<code>
Private Sub clicking(ByVal sender As System.Object, ByVal e As System.EventArgs)
msgbox("Klickad")
End Sub
</code>
/Peter