Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

LabelEdit Listview in Visual Basic 6

RubeL
6 antwoorden
  • Ik heb een ListView (reportview, 3) met twee kolommen. Laten we die kolommen even Property en Value noemen.
    Middels het LabelEdit event kan ik het label van de kolom Property aanpassen. Ik wil echter het label van Value aanpassen.

    Hoe kan ik dit doen?
    Alvast bedankt, Ruben
  • Ruben,

    Ik ben er niet zeker van dat ik dezelfde ListView gebruikt heb als jij, maar bij die ik gebruikt heb, kon ik de header van de kolom wijzigen met:
    [code:1:d5882939f7] ListView2.ColumnHeaders(2).Text = "Andere tekst"[/code:1:d5882939f7]
    Het kan zijn dat we langs elkaar heen communiceren, maar dit is voorlopig mijn antwoord.

    Groet, Maarten.
  • Ik heb mijn probleem niet helemaal goed geformuleerd:

    Ik heb 2 kolommen: Property en Value.
    Hierin staan meerdere rijen, oftewel ListItems en ListSubItems (voor de tweede kolom). Ik kan enkel het label bewerken van de rijen in de kolom Property (het ListItem), maar ik wil het label bewerken van de rijen in de kolom Value (de ListSubItems).

    Hopelijk is het zo duidelijker wat ik bedoel.

    Groeten, Ruben
  • Ruben,

    Ik weet nog niet of ik je goed begrijp, maar als anderen dat wel doen, hoop ik dat ze het advies overnemen.
    Ik kan (VB6SP5) meer ListViews tevoorschijn toveren. Dat lijkt samen te hangen met de SPs die zijn geinstalleerd. Als ik op de '(About)' property dubbelklik zie ik de oorsprong.
    Ik heb het eerdere testprojectje afgesloten zonder te bewaren, dus nu moet ik even standaardiseren. Als ik een ListView op mijn from plaats en dubbelklik op (About) dan zie ik de tekst:
    List View ActiveX Control - Version 6.0 (SP4).
    Hebben we het over hetzelfde ListView?
    Aannemende dat dat zo is, is me de opbouw niet geheel duidelijk. Laat ik een opbouw van een tabel even schetsen. Een tekening zegt meer en sneller dan meer pagina's papier.

    Header1 Header2
    regel1 info11 info21
    regel2 info12 info22
    regel3 info13 info23
    etc ….. ……

    Is dit de opbouw van je ListView?
    Welke tekst (zie schets) wil je aanpassen?

    Tot spoedig en groet, Maarten.
  • Ook ik heb Listview SP4 (VB6SP5)

    Mijn Listview moet er als volgt uitzien:

    Property | Value
    ——————-
    Prop1 Value1
    Prop2 Value2
    Prop3 Value3

    De velden in de kolom property moeten niet aangepast worden. De velden in de kolom Value wel. Gebruik ik LabelEdit als de Listview in Reportview staat, dan kan ik enkel de velden in de kolom Property bewerken.

    Dus uitgewerkt voor bijv. een adressentabel:

    Property | Value
    ——————-
    Naam (Naam mag ik aanpassen)
    Adres (Adres mag ik aanpassen)

    Hopelijk begrijp je zo wat ik wil.

    Groeten Ruben
  • Ruben,

    Ik heb even weinig tijd gehad en wat gezocht naar de mogelijkheid die jij zoekt. Het verbaast me dat er geen andere reacties zijn gekomen. Werkt niemand aan een dergelijk probleem of heeft niemand ervaring hiermee?

    Allereerst vraag ik me af of de Listview het meest geschikt is, maar je stelt dat je die gebruikt, dus ga ik ook die uitdaging aan. Verder heb je het over het LabelEdit event. Dit is een property, maar de Begin/AfterLabelEdit's zijn wel events.

    Edoch, laat ik je mijn oplossing geven.
    Ook ik kreeg de indruk dat alleen de eerste kolom uit de Listview kan worden aangepast. Vergelijkbaar met het rechterdeel van de Windows Explorer, waar de file-namen, maar niet hun properties zijn aan te passen.
    Maar waar een wil is is een weg. Dus stel ik de volgende code voor:

    - Maak bij je Listview1 een Text1 textbox, met de verticale positie zoals die je bij gebruik het beste voorkomt. Deze textbox is normaal invisible, maar wordt geplaatst en zichtbaar wanneer een invulling wordt gevraagd.
    De textbox wordt gevuld met de aanwezige waarde van jou 'Value'.
    Na ESC wordt de inhoud van de tekstbox niet gebruikt.
    Na ENTER wordt de inhoud van de textbox naar jou 'Value' weggeschreven

    [code:1:a0033f7449]Dim mousePosY As Integer

    Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    Text1.Top = mousePosY + ListView1.Top - 111
    Text1.Text = ListView1.SelectedItem.SubItems(1)
    Text1.Visible = True
    ListView1.Enabled = False
    Text1.SetFocus
    End Sub

    Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    mousePosY = y
    End Sub

    Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = 27 Then
    Text1.Visible = False
    ListView1.Enabled = True
    End If

    If KeyAscii = 13 Then
    ListView1.SelectedItem.SubItems(2) = Text1.Text
    Text1.Visible = False
    ListView1.Enabled = True
    End If

    End Sub[/code:1:a0033f7449]

    Ik vind het nog niet mooi, maar het werkt.
    Ik hoop dat er veel afwijkende reacties op komen. Zo leren we er allen van.

    Groet, Maarten.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.