Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[vb.net] instellingen form / listbox met figuren + tekst

Pagina: 1
Acties:

  • mmy841
  • Registratie: Juli 2004
  • Laatst online: 09-07-2021
Ik zoek een alternatieve wijze om instellingen in een applicatie in te voeren.

Ipv een standaard tabcontrol wens ik nu gebruik te maken van een layout zoals bv deze uit voipbuster (zoals onderstaand voorbeeld).

Het linker gedeelte dacht ik te maken dmv een listbox. Het rechtergedeelte (met de afzonderlijke instellingen) als verschillende pannels met de controls (labels, tekstvakken, ...) die ik zal hide / show afhankelijk van de gemaakte keuze in de listbox.

Is het mogelijk om voor de tekst in een listbox een figuur te plaatsen en de teksteigenschappen van een item te wijzigen? Of is hiervoor toch best een andere control nodig. Als iemand een ander idee heeft hoor ik het ook graag omdat ik nog wat aan het experimenteren ben met de layout.

Hier het voorbeeld zoals in voipbuster
instellingen

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Heb je wel eens eex explorer look-a-like gemaakt? Treeview links en een listview rechts?
Nu plaats je ipv van een listview daar een 'panel. Dit panel is slechts een container waarin je andere user controls kunt hangen. Zodra iemand op een item in je lijstje klikt, laad je een ander usercontrol in het panel. Weet je van te voren welke controls er gebruikt worden, dan zou je deze in een Hashtable kunnen plaatsen en op basis van de key (Tag van listitem element) het control ophalen.

Er zijn ook andere oplossing, maar deze is vrij simpel. Later kun je ook eenvoudig nieuwe items toevoegen.

If it isn't broken, fix it until it is..


  • mmy841
  • Registratie: Juli 2004
  • Laatst online: 09-07-2021
Ik ben mij nu wat aan het verdiepen in treeviews en listviews. Ipv de listbox kan ik eventueel een treeview gebruiken en de bekende mapiconen vervangen door andere. In het rechterdeel van het form kan ik dan inderdaad met panels werken...

Als dit de juiste manier is zal het zo uiteindelijk wel lukken...ik vroeg me gewoon af of dit niet een te omslachtige manier was.

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
wat je ook kan doen is je eigen tab control maken.
Deze kan je dan er zo uit laten zien als die van voidbuster, en je hebt wel een overzichtelijke control om mee te proggen.
(dus geen 40 controls voor zoiets, maar gewoon 1)

wat je zelfs kan doen is de normale tabcontrol overriden. verder de paint functie overriden en eigenlijk ben je dan al klaar.. (misschien nog een tabicon property toevoegen)

This message was sent on 100% recyclable electrons.


  • mmy841
  • Registratie: Juli 2004
  • Laatst online: 09-07-2021
Een volledig nieuwe tabcontrol uitschrijven is momenteel boven mijn kennis. Dit is mss wel iets voor de toekomst...Toch reeds bedankt voor info. Met een treeview lukt het mij misschien wel. Anders zal ik nog wel eens kijken naar de alternatieven...

Edit: een treeview lukt ondertussen wel, maar is het mogelijk om een image voor een node groter weer te geven als standaard? Als ik het lettertype vergroot, blijft de image even groot...

[ Voor 27% gewijzigd door mmy841 op 23-07-2007 15:24 ]


  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 21-10 21:48
Ik zou een listview gebruiken, heb ik ook gedaan voor mijn eigen messenger. Werkt prima, zie hier wat code voorbeeld:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'Some private declareations
        Dim lvgroup As ListViewGroup

 ' *** BEGIN LISTVIEW ***
        'Start setting up the listview options.
        Lv_Users.HeaderStyle = ColumnHeaderStyle.None
        Lv_Users.View = View.SmallIcon

        ' Add an online group.
        lvgroup = New ListViewGroup("onlineusers", "Online")
        Lv_Users.Groups.Add(lvgroup)

        ' Add an away group.
        lvgroup = New ListViewGroup("awayusers", "Away")
        Lv_Users.Groups.Add(lvgroup)

        ' Add an busy group.
        lvgroup = New ListViewGroup("busyusers", "Busy")
        Lv_Users.Groups.Add(lvgroup)

        ' Add an offline group.
        lvgroup = New ListViewGroup("offlineusers", "Offline")
        Lv_Users.Groups.Add(lvgroup)

        ' Add an blocked group.
        lvgroup = New ListViewGroup("blockedusers", "Blocked")
        Lv_Users.Groups.Add(lvgroup)
        ' *** END LISTVIEW ***

lv_Users.BeginUpdate()
        lv_Users.Clear()
For Each buddy As contactlistuser In contactlist
            If Not buddy Is Nothing Then
                ' Start adding the users into the listview, based on there status
                If buddy.userstatus = -1 Then
                    'The user has a status -1 and is offline
                    lvitem = New ListViewItem(buddy.username, 0)
                    lvitem.Tag = buddy.usersocket
                    lv_Users.Items.Add(lvitem) 'And add it to the list view
                    lv_Users.Groups("offlineusers").Items.Add(lvitem) 'And add my item to the group
                ElseIf buddy.userstatus = 1 Then
                    'The user has a status 1 and is online
                    lvitem = New ListViewItem(buddy.username, 1)
                    lvitem.Tag = buddy.usersocket
                    lv_Users.Items.Add(lvitem) 'And add it to the list view
                    lv_Users.Groups("onlineusers").Items.Add(lvitem) 'And add my item to the group
                ElseIf buddy.userstatus = 2 Then
                    'The user has a status 2 and is away
                    lvitem = New ListViewItem(buddy.username, 2)
                    lvitem.Tag = buddy.usersocket
                    lv_Users.Items.Add(lvitem) 'And add it to the list view
                    lv_Users.Groups("busyusers").Items.Add(lvitem) 'And add my item to the group
                ElseIf buddy.userstatus = 3 Then
                    'The user has a status 3 and is busy
                    lvitem = New ListViewItem(buddy.username, 3)
                    lvitem.Tag = buddy.usersocket
                    lv_Users.Items.Add(lvitem) 'And add it to the list view
                    lv_Users.Groups("awayusers").Items.Add(lvitem) 'And add my item to the group
                ElseIf buddy.userstatus = 5 Then
                    'The user has a status 5 and is blocked
                    lvitem = New ListViewItem(buddy.username, 4)
                    lvitem.Tag = buddy.usersocket
                    lv_Users.Items.Add(lvitem) 'And add it to the list view
                    lv_Users.Groups("blockedusers").Items.Add(lvitem) 'And add my item to the group
                End If

            End If
        Next
        lv_Users.EndUpdate()

  • mmy841
  • Registratie: Juli 2004
  • Laatst online: 09-07-2021
@fleppuhstein bedankt voor het voorbeeld...
Is er echter een bepaalde referentie of extra declaratie nodig aangezien ik de melding krijg dat contactlistuser niet gedefinieerd is en contactlist niet gedeclareerd...
code:
1
 For Each buddy As contactlistuser In contactlist

[ Voor 66% gewijzigd door mmy841 op 25-07-2007 11:47 ]


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 14:29

sopsop

[v] [;,,;] [v]

mmy841 schreef op woensdag 25 juli 2007 @ 11:33:
@fleppuhstein bedankt voor het voorbeeld...
Is er echter een bepaalde referentie of extra declaratie nodig aangezien ik de melding krijg dat contactlistuser niet gedefinieerd is en contactlist niet gedeclareerd...
code:
1
 For Each buddy As contactlistuser In contactlist
Jij wilt toch geen messenger nabouwen? Dan moet je ook niet zijn messenger contacts & buddies objecten gebruiken, maar je eigen objecten

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 29-11 15:35
Je kunt ook gewoon een TabControl gebruiken. Dan staat elke pagina handig in een TabCollection.

Om de layout te krijgen als je wilt, moet je de Appearance op FlatButtons zetten met backcolor van de tab labels op white. De tablabels verschijnen links van de tabcontrol door Alignment op Left te zetten. Verder kun je images toevoegen aan de tab labels.

Zie hier hoe je plaatjes toevoegt aan je tab labels.

[ Voor 9% gewijzigd door Mastermind op 25-07-2007 16:39 ]

Pagina: 1