Hej Niklas, Niklas, Tack för hjälpen funkar fint fint... Ja, det går.Skapa knappar i RunTime
Är det någon som vet hur man kan skapa knappar medans ett progran körs?
den skapande knappen vilj jag koppla till en subrutin.
/NiklasSv: Skapa knappar i RunTime
Skapa ett nytt forumlär, lägg en <b>TextBox</b> och en <b>Button</b> på den. Vi kommer använda dessa för att lägga till en knapp med namnet på den text som finns i textrutan.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Slumpa ut var knappen skall finnas - vi tar inte hänsyn till knappens
' dimentioner i detta exempel.
Dim rnd As Random = New Random(DateTime.Now.Millisecond)
Dim x As Integer = Rnd.Next(Me.Width)
Dim y As Integer = Rnd.Next(Me.Height)
' Skapa knappen och sätt dess egenskaper
Dim but As Button = New Button
but.Name = "btn" + TextBox1.Text
but.Text = TextBox1.Text
but.Location = New Point(x, y)
' Set till att vi tar hand om knapptryckningar på den
' nya knappen.
AddHandler but.Click, AddressOf button_Click
' Lägg till knappen på formuläret.
Controls.Add(but)
End Sub
Private Sub button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' Hämta objektet för en knapp som blev
' tryckt på
Dim b As Button = CType(sender, Button)
' Visa en dialogruta med ett meddelande som
' innehåller knappens namn.
MessageBox.Show("Hello from " + b.Text)
End Sub
Hoppas detta löser ditt problem!
//Andreas
Sv: Skapa knappar i RunTime
Löste ditt problem sig eller behöver du mer hjälp? Om du är klar med detta problemet så markera inlägget som antingen löst (om du hittat en lösning - skriva gärna vad den var så andra kan ta del av både fråga och svar) eller stängd (om du inte hittat en lösning men problemet inte är aktuellt längre).
Om du inte löst problemet och vill ha mer hjälp så skriv ett inlägg som beskriver var du står idag med problemet (vad du har provat etc) så skall vi se om vi inte kan hitta en lösning.
//AndreasSv: Skapa knappar i RunTime
En annan fråga bara
Kan man tabort kanpparna senare i programmet??
/NiklasSv: Skapa knappar i RunTime
<code>
'Jag antar här att knappen's variabel heter Test
Test.Parent.Controls.Remove(Test) 'Detta tar bort knappen
</code>
En liten förklaring:
Test.Parent är den kontroll som knappen ligger i.
Test.Parent.Controls är en collection där knappen Test ligger i.
Test.Parent.Controls.Remove(Test) tar bort knappen ifrån sin förälders collection
Titta gärna med på System.Windows.Forms.Control.Controls - collectionen i msdn dokumentationen