Svish Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Situasjonen er følgende: Har en UserControl med en checkbox og en label. Jeg vil at denne UserControl skal skiftefarge BackColor når man klikker på den. Problemet er at denne UserControlen kun får med seg mouseclick når man klikker direkte på den. Med andre ord, ikke hvis en er uheldig å treffer noe areal som tilhører checkboxen eller labelen. Skal det være sånn? Sendes ikke en museklikkevent nedover i lagene liksom? Må en sette noen parametere for at det skal funke, eller er det bare sånn det er? Har foreløpig løst det ved gjøre følgende på checkbox og label i denne UserControl: x.MouseClick +=new MouseEventHandler(x_MouseClick) x_MouseClick ser slik ut: void x_MouseClick(object sender, MouseEventArgs e) { OnMouseClick(e); } Fungerer jo forsåvidt, men ble litt frustrert og nysgjerrig... Noen som har peil, forklaring, etc? Lenke til kommentar
Manfred Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 elementet ditt ligger jo oppå. Det hadde skapt MYE krøll for folk om eventen skulle passes til alle underliggende elementer og controls. Lenke til kommentar
Svish Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 ok. ja det kan forsåvidt hende når jeg tenker nærmere etter... dvs, egentlig ikke, for du skal jo få med denne sender. og den burde jo vært satt til den som ble trykket på på toppen. synes jeg i hvert fall! da kunne man tatt if(sender == this) // Gjør det vi trenger eller no... jaja. uansett, så har jeg jo en løsning på problemet. og antar det da er eneste muligheten Lenke til kommentar
GeirGrusom Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Men det du er ute etter er kun hendig i akkurat ditt tilfelle. Du kan eventuelt automatisere oppgaven ved å legge til dette i constrcutoren: foreach(Control ctrl in Controls) ctrl.Click += x_MouseClick; // Aner ikke hva delegaten heter Jeg husker ikke om en trengte delegates i Events eller ikke, og dessuten aner jeg ikke hvilken delegate som brukes på click. Men det spiller ingen rolle egentlig... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå