Avatar billede sandrasmurf Nybegynder
28. januar 2008 - 13:30 Der er 4 kommentarer og
1 løsning

Kommunikation mellem UserControls

Mit spørgsmål er nok mere af en designmæssig karakter end decideret C# relateret spørgsmål, men håber alligevel på nogle input. So here goes.

Jeg har delt en form op med en vertical splicontainer, så der er to hovedområder på formen. I venstre splicontainer har jeg indsat en Outlook Bar control med mine egne bjælker i stedet for de traditionelle Mail, Kalender osv. Control'en er en jeg har fundet på nettet.

I en traditionel Outlook bar er der eksempelvis et treeview i hovedfeltet i bar'en, når man har valgt Mail bjælken. Jeg har en Data bjælke og indsætter et par knapper i stedet i hovedfeltet.

Jeg vil gerne opdatere hvilke data, der skal vises i et DataGridView i højre splitcontainer, ud fra tryk på mine data knapper indlejret i en outlook bar i venstre splitcontainer.

Hvordan kommunikerer jeg bedst mellem to UserControls. Sender man højre splitcontainer med ind i maven på den venstre eller hvordan får man styret kommunikatione bedst.

Emner jeg kan søge efter i Google, eksempler og links modtages meget gerne
Avatar billede mikkel_sommer Nybegynder
28. januar 2008 - 14:41 #1
Du kan på den side hvor dine usercontrols ligger definere et event som laver de opdateringer i dit DataGridView som du ønsker. Dette event raiser du så fra den anden usercontrol.
Avatar billede sandrasmurf Nybegynder
28. januar 2008 - 15:06 #2
Er det den bedste måde at gøre det på?

Jeg har usercontrols i begge splitcontainere, der skal snakke med hinanden. Eller rettere, den venstre sides controls skal kunne snakke med dem i højre side.

Så jeg laver eksempelvis en UserControl for hver menu-bjælke i Outlook baren, der skal indsættes i hovedfeltet i Outlook baren til venstre og så publisher jeg en event fra disse usercontrols.

Så jeg fanger buttonpressed event'en for mine knapper til venstre og publisher dem i en fælles ny event med en parameter, der beskriver hvilken knap, der blev trykket på.

Så kan jeg subscribe på den nye event i form klassen og bruge den til at opdatere mit view for split container 2.

Det er i forvejen form klassen, der loader usercontrols'ene til outlook baren baseret på events fra Outlook control'en. Så der kan jeg bare subscribe på events'ene ved load.

Skal jeg styre alt koden fra form-klassen eller kan man lave en manager af en eller anden art. Der bliver meget kode.
Avatar billede mikkel_sommer Nybegynder
28. januar 2008 - 15:32 #3
Du kan godt lade dit event på form siden kalde forskellige metoder på dine usercontrol klasser alt efter hvilken knap der bliver klikket på. Min pointe var bare at du skal rundt om form siden for at lade en handling på en usercontrol have effekt på en anden.
Avatar billede sandrasmurf Nybegynder
28. januar 2008 - 23:16 #4
Men det er helt normalt, at form klassen indeholder en masse publish/subscribe kode?

Smid et svar. Hvis det er vejen frem, så har jeg vidst fanget idéen. De er s.. meget smarte de event-delegate ting i C#.
Avatar billede mikkel_sommer Nybegynder
29. januar 2008 - 08:58 #5
Kommer her.
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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