listview vraag

Status
Niet open voor verdere reacties.

svenvideo

Gebruiker
Lid geworden
14 jan 2012
Berichten
15
ik ben bezig met een script voor een quiz, maar daarbij zit ik nu vast want ik weet niet hoe ik een button en een label weg kan halen met alleen maar een sterretje in een apart submapje van listview.
mijn listview:
scaled.php

buttons en labels:
scaled.php


bedankt:
svenvideo
 
Voeg eerst deze functie toe:
[CPP]Public Function Return_Panel() As Panel
''//declareer naam-en-button-panel
Dim defaultpanel As New Panel
Dim bttn As New Button
Dim lbl As New Label
bttn.Name = "bttn"
bttn.Location = New Point(7, 3)
bttn.Size = New Size(25, 25)
lbl.Name = "lbl"
lbl.Location = New Point(38, 8)
defaultpanel.Controls.AddRange({bttn, lbl})
Return defaultpanel
End Function[/CPP]

Gebruik daarna deze code:

[CPP]''//kijk wie eruit gaat
Dim erin As New List(Of String)
For Each item As ListViewItem In ListView1.Items
If item.SubItems(2).Text <> "*" Then
erin.Add(item.Text)
End If
Next

''//genereer panel
Dim grootpanel As New Panel
Dim vraaglabel As New Label
vraaglabel.Text = "1. Wie denk je dat er deze ronde uitgaat?"
vraaglabel.Size = New Point(vraaglabel.Text.Length * 5.5, 15)
grootpanel.Size = New Size(vraaglabel.Size.Width, erin.Count * 40 + 15)
grootpanel.Location = New Point(12, 12)
grootpanel.Controls.Add(vraaglabel)

For i As Integer = 1 To erin.Count
Dim userpanel As Panel = Return_Panel()
userpanel.Size = New Size(grootpanel.Width, 30)
userpanel.Controls(0).Text = i.ToString
userpanel.Controls(1).Text = erin(i - 1)
userpanel.Controls(1).Size = New Size(grootpanel.Width, 15)
userpanel.Size = New Size(grootpanel.Width - 5, 30)
userpanel.Location = New Point(5, 30 * i)
grootpanel.Controls.Add(userpanel)
Next

Me.Controls.Add(grootpanel)[/CPP]

Resultaat:

83114302.png
 
en hoe kan ik een er voor zorgen dat als je op de button druk dat er dan dit script dan uitgevoerd wordt:
punt.Text = punt.Text + 1
 
Voor je eerste vraag:

Zo voeg je je handler toe:

[CPP]AddHandler userpanel.Controls(0).Click, AddressOf ToDo[/CPP]

Met als functie:

[CPP]Private Sub ToDo()
punt.Text = punt.Text + 1
End Sub[/CPP]

Zet de eerste code onder de declaratie van userpanel (in de for-loop).
En de tweede code moet op de plaats waar je een sub/functie etc. zou zetten: binnen de class maar buiten andere subs.

Voor je tweede vraag:
Gebruik dit:

[CPP]bttn.FlatStyle = FlatStyle.Flat
lbl.FlatStyle = FlatStyle.Flat[/CPP]

Dit zet je in de Return_Panel-functie.
 
nog 2 kleine vraagjes.
en nu zou ik ook nog willen dat hij ook nog van de selected player niet weergeeft, en dat hij 1 speciaal persoon neemt waar ook een * bij staat en dat hij daar: punt.Text = punt.Text + 10 bij doet
 
Kun je je vragen iets meer uitwerken? Dit is een beetje ongedetailleerd :P
 
1. nu heb ik dat je eerst je naam invult en dat hij je dan selecteert, en dan zou ik willen dat hij deze ook niet laat zien.
2. dat hij alleen bij een speciale player met een * deze actie uit voert: punt.Text = punt.Text + 10
 
Vraag 1: Deze niet laat zien? :confused:
Vraag 2: Wil je bij alle players met een * die opdracht uitvoeren? Die opdracht wordt toch aan de eventhandler van die Button.Click toegevoegd (zie code)

Sorry maar mijn glazen bol is bij de reparateur.
 
ik heb een error in deze:
[CPP]Dim a As String = 0 + av3.Text
Form3.ListView2.Items(a).Selected = True[/CPP]
wat is er fout?
en dan zegt hij dat de onderste een error heeft
 
Ja, dat lijkt me logisch. Wat probeer je precies te doen? Een item te selecteren?
 
Je kan dan ook geen string als indexcijfer gebruiken:

Probeer zoiets voor als je items met een bepaalde tekstinhoud wil selecteren:

[cpp]For Each item As ListViewItem In ListView1.Items
If item.Text = "JoZ1" Then item.Selected = True
Next
ListView1.Select()[/cpp]

En zo met een bepaalde index:

[cpp]ListView1.Items(0).Selected = True
ListView1.Select()[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan