HDSoftware Skrevet 16. februar 2011 Del Skrevet 16. februar 2011 Folkens: Sett at man har en TabControl plassert med la oss si 5 pre designede tabs. Koden for å finne hvilken tab som er valgt er jo slik: switch (TheTab.SelectedIndex) { case 0: // Første TAB .... case 1: // Andre Tab o.s.v. } Men sett at programmet inneholder omorganisering samt muligheten til å legge til nye tabs. Hvordan skal man da kunen finne rett tab? Jeg prøvde SelectedTab uten hell: switch (TheTab.SelectedTab) { case tabEnTab: // tabEnTab er valgt ..... case tabEnAnnenTab: etc... } Dette feiler allerede før kompillering med dette: Error 5 A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type Så folkens. Hvordan ville dere gjort dette? Lenke til kommentar
GeirGrusom Skrevet 17. februar 2011 Del Skrevet 17. februar 2011 Bruk en if istedet. if(tab.SelectedTab == MyTabPage) { } Lenke til kommentar
miXer Skrevet 19. februar 2011 Del Skrevet 19. februar 2011 GeirGrusom, det forutsetter vel at du kjenner til alle tabsene? Jeg tror jeg ville brukt en List<TagPage> og ved oppstart fylt opp denne med alle tabsene, og lagt til tabs ettersom bruker legger til flere. Lenke til kommentar
GeirGrusom Skrevet 20. februar 2011 Del Skrevet 20. februar 2011 Eventuelt har Tab page en Tag egenskap som kan brukes til å identifisere dem. Lenke til kommentar
HDSoftware Skrevet 21. februar 2011 Forfatter Del Skrevet 21. februar 2011 Hmmm. TAG ja. Den har jeg sett er der på kontroller, men har egentlig aldri tenkt på denne som noe nyttig. Må sjekke opp hva TAG er for noe.... Lenke til kommentar
GeirGrusom Skrevet 21. februar 2011 Del Skrevet 21. februar 2011 Tag er user-defined data. Det er av typen object, så du kan lett lagre en string eller noe der. Lenke til kommentar
HDSoftware Skrevet 21. februar 2011 Forfatter Del Skrevet 21. februar 2011 Wow! Veldig interresant. Så i praksis kan jeg hekte på hva jeg vil på en kontrol. Også egne klasser/objekter. Nice... Lenke til kommentar
The Jackal Skrevet 22. februar 2011 Del Skrevet 22. februar 2011 Aller helst burde du vel redesigne akkurat det prøver å få til. Personlig er jeg mer av den oppfatning at om du bruker Tag, så har du gjort noe grunnleggende feil. Du kan ofte komme deg ganske enkelt ut av en slik switch setning ved f.eks implementere metodene som skal kjøres direkte på objektet du switcher på. Altså...noe slik som: public interface ISwitchableObject{void DoStuff();} //implementer på TabObject var obj = TheTab.SelectedItem as ISwitchableObject; obj.DoStuff(); Koden som du har i de forskjellige case delene kan du putte inn i DoStuff metoden istedetfor. Er selvfølgelig ikke alltid dette passer...men et tips å ta med på veien i alle fall Lenke til kommentar
HDSoftware Skrevet 25. februar 2011 Forfatter Del Skrevet 25. februar 2011 Hmmm. Den var spenstig. Var ikke klar over den muligheten. Skal prøve den... Lenke til kommentar
The Jackal Skrevet 25. februar 2011 Del Skrevet 25. februar 2011 Normalt i objektorientering...hold funksjonaliteten nærmest mulig objektet det tilhører Lenke til kommentar
GeirGrusom Skrevet 25. februar 2011 Del Skrevet 25. februar 2011 Ja... Tag er egentlig en Visual basic 6.0 hack ettersom det ikke var noen ekte objektorientering der. 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å