Gå til innhold

Utvide grensesnittet med kode.[Løst]


Anbefalte innlegg

Er det mulig å få vb til å opprette til f.eks. en linklable automatisk?

 

Har en dynamisk matrise som den som bruker programmet kan fylle ut. Ønsker at etterhvert som det legges til data i matrisen skal dette vises som en liste. Å liste opp i en listbox eller lignende er selfølgelig mulig, og det å gi bruker mulighet til å endre innholdet i matrisen er heller ikke noe stress. Men det hadde sett bedre ut om man kan gjøre endringer ved å klikke på et objekt i en liste istede for å gå via knapper. Med en statisk matrise kunne jeg ha laget et grensesnitt(liste) på forhånd og deretter skjult de deler av listen som ikke inneholdt data. Men ettersom matrisen er dynamisk blir ikke dette noe gunstig løsning.

 

Håper problemet er godt nok beskrevet.

Endret av Turboguri
Lenke til kommentar
Videoannonse
Annonse

Er nok controls.add jeg skal bruke ja, men finner ikke helt ut av bruken. Har du et liten kodesnutt som forklarer bruken av controls.add? Finne ingen brukbare eksempler med å google. Det jeg trenger er som sagt en kode som legger f.eks en knapp(linklabel, label etc kan også brukes) til GUI når en matrise fylles med data.

Lenke til kommentar

Hvis det er .NET, så er det forholdsvis enkelt:

 

Public Sub AddControls()
 For i As Integer = 0 To 100
Dim btn As New Button
btn.Location = New Point(0, i * 25)
btn.Size = New Size(150, 20)
btn.Text = "Knapp " & i
AddHandler btn.Click, AddressOf ButtonClick
Controls.Add(b)
 Next i
End Sub

Private Sub ButtonClick(ByVal sender As Object, ByVal e As EventArgs)
 Dim btn As Button = sender
 MessageBox.Show(btn.Text & " ble trykket inn")
End Sub

Endret av GeirGrusom
Lenke til kommentar

Var litt kjapt ute med å si takk for meg....

 

Får opprettet knappper som jeg vil.

Har laget følgende kode som et eksempel.

	Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
	Dim i As Integer
	Dim a(3) As String

	a(0) = "per"
	a(1) = "kalle"
	a(2) = "knut"
	a(3) = "pelle"

	For i = 0 To 3
		Dim b As Button = New Button
		b.Text = a(i)
		b.SetBounds(15, 15, 50, 30)
		b.Location = New Point(10, i * 35)
		Controls.Add(b)
	Next i
End Sub

Hvordan får jeg lagt kode til de nye knappene? Koden til knappen som tilhører a(0) skal kunne endre innholdet i a(0) etc.

Lenke til kommentar

AddHandler btn.Click, AddressOf ButtonClick

 

Private Sub ButtonClick(ByVal sender As Object, ByVal e As EventArgs)
 Dim btn As Button = sender
 MessageBox.Show(btn.Text & " ble trykket inn")
End Sub

 

Det er det denne koden gjør.

Sender er alltid objektet som blir brukt, i dette tilfelle en knapp.

Lenke til kommentar

For å legge til en handler for hver knapp er jo såre enkelt.

 

Du legger til den Addhandler b.Click, AddressOf Buttonclick

 

Så har vi Buttonclick prosedyren:

 

Sub Buttonclick(sender as Button, e as Eventargs)

Select Case LCase(sender.Name)

Case Else

MsgBox("Ugyldig knapp")

End Select

End Sub

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...