[VB.NET] meerdere panels selecteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
Beste Tweakers,

Ik wil vanuit een database straks panels toevoegen, deze panels worden dan met script aangemaakt.
Alleen wanneer ik over een panel heen ga moet de achtergrond kleur veranderen.

Ik vraag mijn eigen alleen af hoe ik straks die panels geselecteerd krijg met een mouse over en een click functie.

Voor 1 panel kan ik dit doen:
code:
1
2
3
4
5
6
7
Private Sub penelfunctionEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles panel.MouseEnter
        panel.BackColor = Color.Blue
    End Sub

    Private Sub penelfunctionLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles panel.MouseLeave
        panel.BackColor = Color.White
    End Sub


Maar hoe kan ik dit doen voor 100+ panels ?
Mij lijkt vast en zeker dat dit mogelijk is maar hoe ?!

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Strunkie schreef op vrijdag 09 maart 2012 @ 18:26:
Maar hoe kan ik dit doen voor 100+ panels ?
Door ze alle 100+ dezelfde functie voor enter/leave te laten gebruiken :? Sender gebruiken (daar is 'ie voor) om te bepalen welk panel het event veroorzaakte et voila.

[ Voor 17% gewijzigd door RobIII op 09-03-2012 18:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
RobIII schreef op vrijdag 09 maart 2012 @ 18:28:
[...]

Door ze alle 100+ dezelfde functie voor enter/leave te laten gebruiken :? Sender gebruiken (daar is 'ie voor) om te bepalen welk panel het event veroorzaakte et voila.
Maar ik mag niet iedere panel "panel" noemen ?!

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je kunt toch gewoon aan elk panel aan de juiste eventhandlers die functies assignen :?

[ Voor 30% gewijzigd door RobIII op 09-03-2012 18:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
RobIII schreef op vrijdag 09 maart 2012 @ 18:30:
Je kunt toch gewoon aan elk panel aan de juiste eventhandlers die functies assignen :?
Ik wil straks de hoeveelheid panels aanmaken dmv een database.
Moet ik dan voor iedere panel die ik toevoeg zo'n functie toevoegen?:
code:
1
2
3
4
5
6
7
Private Sub penelfunctionEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles panel.MouseEnter
        panel.BackColor = Color.Blue
    End Sub

    Private Sub penelfunctionLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles panel.MouseLeave
        panel.BackColor = Color.White
    End Sub


Edit: ik ga even jouw pagina lezen thanks voor de link!

[ Voor 4% gewijzigd door Strunkie op 09-03-2012 18:33 ]

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Strunkie schreef op vrijdag 09 maart 2012 @ 18:32:
Moet ik dan voor iedere panel die ik toevoeg zo'n functie toevoegen?:
Nee; je moet aan elk panel aan de juiste events de juiste handlers knopen.

[ Voor 37% gewijzigd door RobIII op 09-03-2012 18:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Eguna
  • Registratie: Januari 2002
  • Laatst online: 01-09 18:00

Eguna

AMD is liev

Beste Strunkie,

scripten doen we niet in .NET, dat noemen we programmeren.

Er van uit gaande dat je panels ongeveer zo aangemaakt worden;
code:
1
dim pnl as new Panel()


Dan zou je het volgende kunnen doen;
code:
1
2
addhandler pnl.MouseEnter addressOf penelfunctionEnter
addhandler pnl.MouseLeave addressOf penelfunctionLeave


Je penelfunctionEnter en Leave zouden er dan ongeveer zo uit moeten zien;
code:
1
2
3
4
5
Private Sub penelfunctionEnter(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim p As Panel = DirectCast(sender, Panel)
        p.BackgroundColor = Color.Blue

    End Sub


Succes!

[ Voor 3% gewijzigd door Eguna op 09-03-2012 18:42 ]

My life for hire!


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
Even een flinke edit:
Ik heb nu dit:
code:
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
Dim container As New Panel()
            Dim status As New Panel()
            Dim face As New PictureBox()

            container.Width = 200
            container.Height = 40

            container.Location = New System.Drawing.Point(0, d * 45)
            container.BackColor = Color.White

            status.Width = 5
            status.Height = 40
            status.BackColor = Color.Green

            face.Width = 40
            face.Height = 40
            face.Location = New System.Drawing.Point(5, 0)
            face.ImageLocation = "F:\DCIM\107WEN__\DSC_0001.JPG"

            contacten.Controls.Add(container)
            container.Controls.Add(status)
            container.Controls.Add(face)

            AddHandler container.MouseEnter, AddressOf penelfunctionEnter
            AddHandler container.MouseLeave, AddressOf penelfunctionLeave
            AddHandler container.MouseClick, AddressOf clicked


Hoe kan ik nu de achtergrond kleur van bijvoorbeeld face veranderen in de functie "penelfunctionEnter"

[ Voor 94% gewijzigd door Strunkie op 09-03-2012 19:34 ]

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Eguna schreef op vrijdag 09 maart 2012 @ 18:41:
Beste Strunkie,

scripten doen we niet in .NET, dat noemen we programmeren.
Beste Eguna,

Kant-en-klare oplossingen geven houden we hier ook niet zo van ;)
Give a man a fish and feed him for a day, teach a man how to fish and feed him for a lifetime
;)
Strunkie schreef op vrijdag 09 maart 2012 @ 18:48:
Hoe kan ik nu de achtergrond kleur van bijvoorbeeld face veranderen in de functie "penelfunctionEnter"
Visual Basic .NET:
1
face.BackColor = .... 

:?
Het zou handig zijn als je vragen wat concreter waren; heel veel zinnigs kunnen we hier natuurlijk niet op zeggen.

[ Voor 33% gewijzigd door RobIII op 09-03-2012 20:41 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
RobIII schreef op vrijdag 09 maart 2012 @ 19:50:
[...]

Beste Eguna,

Kant-en-klare oplossingen geven houden we hier ook niet zo van ;)

[...]

;)

[...]

Visual Basic .NET:
1
face.BackColor = .... 

:?
Het zou handig zijn als je vragen wat concreter waren; heel veel zinnigs kunnen we hier natuurlijk niet op zeggen.
De bovenstaande code heb ik nu in een for loop gezet dus hij wordt 10x aangemaakt.
Als ik er over heen ga wil ik de achtergrondkleur veranderen naar bijvoorbeeld rood.
Nu moet dit alle gebeuren in de functie penelfunctionEnter maar ik zou niet weten hoe ik "face" nu krijg geselecteerd/gepakt (hoe je het ook mag noemen).

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Mja, heel misschien is 't verstandig even een (basis) tutorial VB.net of twee te doen, want dit is wel héél basic (no pun intended :+ ).

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
RobIII schreef op vrijdag 09 maart 2012 @ 21:20:
Mja, heel misschien is 't verstandig even een (basis) tutorial VB.net of twee te doen, want dit is wel héél basic (no pun intended :+ ).
Heb je geen tip voor mij, ik ben niet te beroerd om te leren maar ik zou niet weten in welke tutorial dit moet staan. Alles wil lukken behalve dit, baal ik wel van haha :).

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Strunkie schreef op vrijdag 09 maart 2012 @ 21:24:
[...]


Heb je geen tip voor mij, ik ben niet te beroerd om te leren maar ik zou niet weten in welke tutorial dit moet staan.
Ik heb 't ook niet over een tutorial van anderhalve pagina maar een VB.Net for beginners ofzo. Iets als dit of dit om de basics onder de knie te krijgen (en wellicht wat (basis) OOP kennis op te doen) en dan wat specifieke(re) WinForms zaken. Of doe eens gek en bestel een goed boek; hell: misschien bestaan er nog wel bibliotheken? :P

Trust me; er is geen "Panels in een array die verkleuren als ik er met mijn muis overheen ga"-tutorial; je zult je de manier van denken eigen moeten maken en zodoende zélf een oplossing moeten kunnen (leren) verzinnen.

[ Voor 22% gewijzigd door RobIII op 09-03-2012 21:40 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
RobIII schreef op vrijdag 09 maart 2012 @ 21:34:
[...]

Ik heb 't ook niet over een tutorial van anderhalve pagina maar een VB.Net for beginners ofzo. Iets als dit of dit om de basics onder de knie te krijgen (en wellicht wat (basis) OOP kennis op te doen) en dan wat specifieke(re) WinForms zaken. Of doe eens gek en bestel een goed boek; hell: misschien bestaan er nog wel bibliotheken? :P
Humz, ik hoop dat een andere tweaker mij nog een zetje in de rug wil geven, toch enorm bedankt voor al je hulp :o

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je hebt vermoed ik nog niet eens de moeite genomen 1 van de vele links aan te klikken die ik postte; daar zit zat bruikbaars tussen om je op gang te helpen. Als je denkt dat je hier de oplossing op een zilveren presenteerblaadje aangereikt krijgt dan heb je 't mis ;)

Afgaand op de, erg gebrekkige might I add, informatie die je geeft ("alles in een loop") ga ik er even van uit dat je deze controls in een "parent" plaatst. Misschien is 't een idee om daar eens iets mee te doen? Of om de reference naar "face" op een andere manier vast te houden of te pakken te krijgen; wélke manier dat is / je kiest is up-to-you als programmeur zijnde. Misschien maak je wel een composite/usercontrol waarin je wat properties/events/methods exposed voor het hightlighten van onderdelen die je dan vervolgens als een array/collection in een (bijv. scrollable) parent host.

Ook eens iets om naar te kijken (zeker de moeite waard!): WPF. De leercurve is wat steiler, maar het is een stuk makkelijker de zaken die je nu wil doen daarmee te bouwen.

[ Voor 10% gewijzigd door RobIII op 09-03-2012 21:51 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
RobIII schreef op vrijdag 09 maart 2012 @ 21:44:
Je hebt vermoed ik nog niet eens de moeite genomen 1 van de vele links aan te klikken die ik postte; daar zit zat bruikbaars tussen om je op gang te helpen. Als je denkt dat je hier de oplossing op een zilveren presenteerblaadje aangereikt krijgt dan heb je 't mis ;)

Afgaand op de, erg gebrekkige might I add, informatie die je geeft ("alles in een loop") ga ik er even van uit dat je deze controls in een "parent" plaatst. Misschien is 't een idee om daar eens iets mee te doen? Of om de reference naar "face" op een andere manier vast te houden of te pakken te krijgen; wélke manier dat is / je kiest is up-to-you als programmeur zijnde. Misschien maak je wel een composite usercontrol waarin je wat properties/events/methods exposed voor het hightlighten van onderdelen die je dan vervolgens als een array/collection in een (bijv. scrollable) parent host.

Ook eens iets om naar te kijken (zeker de moeite waard!): WPF. De leercurve is wat steiler, maar het is een stuk makkelijker de zaken die je nu wil doen daarmee te bouwen.
Ik snap je volledig met het posten van tutorials en het verwijzen hiernaar, hier leer ik het meeste van. Alleen als ik ergens mee bezig ben, wil ik dat het werkt. Als dit niet het geval is gooi ik het in de prullenbak en stop ik met leren. Ik weet het een verkeerde insteek maar zo ben ik nu eenmaal.

Zou je wel willen aangeven of ik het opbouwen van mijn panels goed is of doe ik het nu volledig fout en moet ik dit op een andere manier aanpakken?

^ Post is hierboven!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Strunkie schreef op vrijdag 09 maart 2012 @ 21:50:
Zou je wel willen aangeven of ik het opbouwen van mijn panels goed is of doe ik het nu volledig fout en moet ik dit op een andere manier aanpakken?
Ik (en we) heb(ben) veel te weinig informatie/context om te bepalen of je iets goed of fout doet. Om 't eenvoudig te houden zou ik al snel naar een usercontrol gaan om zo zaken makkelijk gescheiden te houden; die usercontrol zou dan de juiste werking verzorgen en dan is 't nog maar een kwestie van die control -tig keer in een container te laden. Daarmee hou je de implementatie van de details voor dat ding gescheiden van de logica van het eigenlijke form/container waarin 't gehost wordt.
Het hightlighten met een mouseover/out-achtig iets zou ik dan wel weer aan de host/container overlaten; dat scheelt nogal wat events die geknoopt moeten worden (één keer in de host/container t.o.v. voor elke (user)control één). In WPF wordt dat nog een stukje leuker met event-bubblingrouting (up en down).
Strunkie schreef op vrijdag 09 maart 2012 @ 21:50:
Ik weet het een verkeerde insteek
Nogal ja; zo zul je nooit iets leren anders dan 't aan elkaar copy/pasten van stukken code die je aangereikt krijgt / via google gevonden hebt / whatever. Programmeren is niet het aan elkaar plakken van snippets code om zo je gewenste resultaat te verkrijgen. Je zult, net als een timmerman, moeten leren omgaan met de gereedschappen die je hebt (hamer, schroevendraaier, zaag, meetlat of Form class, Button control, System.IO namespace, integer, flow control, variabele ...) en die moeten leren combineren en gebruiken zodanig dat er iets uit komt rollen dat doet wat je wil. Of je moet happy zijn met de beschikbare IKEA modellen en 't daar dan ook mooi bij houden ;) Wil je iets meer bereiken dan moet je de "lego blokjes" die .Net (of eender welk framework/taal) je biedt moeten leren gebruiken zoals ze bedoeld zijn :Y)

[ Voor 48% gewijzigd door RobIII op 09-03-2012 22:01 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Strunkie
  • Registratie: Februari 2008
  • Laatst online: 21-10-2024

Strunkie

> Post is rechts!

Topicstarter
Het is opgelost mede dankzij RobIII;

Ik heb nu binnen een Usercontrol een panel aangemaakt met daarin de benodigde labels, pictureboxen etc.
Label wordt nu gewoon 100x gekopieerd en binnen de Usercontrol voer ik de taken uit die ik nodig ben.

^ Post is hierboven!

Pagina: 1