Saakos VB.NETillä luotua itse koodissa buttoneita ilman että design tilassa piirtää niitä etukäteen ja koodissa sitten kordinaateilla siirtelee niitä ja muuttelee niiden kokoa? Tarkoitus on luoda buttoneista eräänlainen taulukko, jonka koko voi vaihdella suuresti ja ei viitsisi luoda reserviin älytöntä määrää valmiita buttoneita, joita sitten kaikkia tarvii tai ei. Olisi kätevempi koodissa katsoa paljonko niitä tilanteen mukaan tarvii ja luo ne ja sen jälkeen heivaa menemään tarpeettomina, kun niitä ei tarvitse enään.
No Moikka Rautakivi!
here's the whole shit...
Protected WithEvents nappi As System.Windows.Forms.Button '... '[k]valmiiksi generoitua paskaa...[/k] '... Private Sub Button1Click(sender As System.Object, e As System.EventArgs) nappi = New Button With nappi .Name = "Nappi" .Text = "NAPPULA" .Location = New System.Drawing.Point(10, 10) .Size = New Size(75, 25) End With Me.Controls.Add(nappi) AddHandler nappi.Click, AddressOf nappiClick End Sub Private Sub NappiClick(sender As System.Object, e As System.EventArgs) getSomeAction(sender) End Sub Protected Sub getSomeAction(obj) messagebox.Show(obj.Name) RemoveHandler nappi.Click, AddressOf nappiClick Me.Controls.Remove(nappi) nappi = Nothing End Sub
Voisiko joku kertoa miten sama tehdään Visual Basic 6:lla?
Lisää formille nappi Command1, muuta sen Index-ominaisuudeksi 0 ja kirjoita:
Private Sub Command1_Click(Index As Integer) ' Index kertoo, mistä napista on painettu MsgBox "Painoit napista " & Index End Sub Private Sub Form_Load() Dim i As Integer ' luodaan viisi uutta nappia (Command1(1)...Command1(5)) For i = 1 To 5 Load Command1(i) ' lasketaan napin paikka edellisen napin avulla Command1(i).Top = Command1(i - 1).Top + 500 ' muutetaan nappi näkyväksi Command1(i).Visible = True Next End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.