Avatar billede aaberg Nybegynder
17. februar 2006 - 14:20 Der er 2 kommentarer og
1 løsning

Hvordan kan jeg vide om der klikkes på en Child Control?

Hej.

Jeg har en klasse som nedarver fra Panel. I denne klasse har jeg brug for at vide om musen klikker på en child control. Jeg ved at man kan tilføje EventHandlers til alle Child Controls og deres Child Controls og deres Child Controls osv, men dette vil jeg gerne ungå. Jeg har løst problemet ved at lave et MessageFilter, men denne løsning synes jeg egentlig ikke så godt om heller, da den giver relativ dårlig performance.

Er der nogen som kender en smart og effektiv måde at gøre dette på?
Avatar billede hacked Nybegynder
19. februar 2006 - 21:51 #1
Jeg forstår ikke helt hvorfor du ikke vil bruge eventhandlers til håndtering. Måske kan du uddybe dit program lidt mere evt. med kode. Anyway du kan vel finde ud af om der er en control ud fra musekoordinater.
Avatar billede aaberg Nybegynder
19. februar 2006 - 22:41 #2
Jeg har en Custom control som dynamisk får tilføjet kontroller. Disse kontroller kan i sig selv indeholde child controls, disse child controls kan indeholde flere child controls osv. Problemet med events er, at hver gang der bliver tilføjet en control til min klasse, må jeg gå igennem alle child controls, og deres child controls osv, for at tilføje eventhandlers på deres click event. Hvis der bliver fjernet nogle controls, må jeg gå igennem dem igen, for at fjerne eventhandlers. Dette synes jeg er en meget klodset løsning.

Som klassen virker nu, bruger den et messagefilter. Hver gang den venstre musseknap trykkes, kalles Control.Contains på min control, som tjekker om min Custom control er parent eller grandparent osv, til den control musen trykkede på. Dette er muligvis den bedste måde at gøre det på, jeg håbede bare der var en bedre løsning.

På en form er der en property der hedder KeyPreview. Hvis denne sættes til "true", bliver alle key events fra formens child controls vidersendt til formen. Jeg havde håbet at der var noget tilsvarende for museklik.
Avatar billede aaberg Nybegynder
02. oktober 2007 - 08:09 #3
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester