ilpostino Skrevet 29. september 2006 Del Skrevet 29. september 2006 (endret) noen som vet om noen bra tutorials som forteller om bruk av menyer og vinduer (hvis du trykke rpå menya så kommer vindu a opp men hvis du trykker på menyb kommer vindi b opp) Endret 29. september 2006 av ilpostino Lenke til kommentar
ze5400 Skrevet 29. september 2006 Del Skrevet 29. september 2006 EEh, hva mener du? tenker du på noe som: Dim Vindu As Form1 = New Form1 Vindu.Show() ?? Lenke til kommentar
ilpostino Skrevet 29. september 2006 Forfatter Del Skrevet 29. september 2006 EEh, hva mener du? tenker du på noe som: Dim Vindu As Form1 = New Form1 Vindu.Show() ?? 6964912[/snapback] vet ikke om noen annen måte å forklare det på enn den idiotiske måten... så tok den varianten når du trykker på en del i en meny (feks kalender-knappen i Outlook) så skiftes hele hoved-vinduet i programmet (i Outlook-tilfelle kommer da kalender-funksjonen opp og dekker hele vinduet). hvordan får en til det i C#? (kan legge ved screenshots hvis det fremdeles er dårlig forklart) Lenke til kommentar
hockey500 Skrevet 29. september 2006 Del Skrevet 29. september 2006 (endret) Det lurer faktisk jeg også på... Du tenker på noe sånt som f.eks. settings-dialogen i Live Messenger? der hvor du velger et element i en meny, så skiftes ut en del av vinduet? Det jeg TROR du gjør i det tilfellet er at du har mange grouBox-er som overlapper hverandre, så endrer du på hvem som er visible og hvem som er hidden. Det jeg ikke helt skjønner med denne fremgangsmåten er hvordan man det lager det i IDE-et, siden alle controls vises til enhver tid der hele tiden. Endret 29. september 2006 av hockey500 Lenke til kommentar
ilpostino Skrevet 29. september 2006 Forfatter Del Skrevet 29. september 2006 Det lurer faktisk jeg også på... Du tenker på noe sånt som f.eks. settings-dialogen i Live Messenger? der hvor du velger et element i en meny, så skiftes ut en del av vinduet? 6965751[/snapback] jeps Lenke til kommentar
j000rn Skrevet 29. september 2006 Del Skrevet 29. september 2006 Det lurer faktisk jeg også på... Du tenker på noe sånt som f.eks. settings-dialogen i Live Messenger? der hvor du velger et element i en meny, så skiftes ut en del av vinduet? 6965751[/snapback] Bruk UserControls og man trenger ikke ha alle i GUI designeren heller. Det beste vil kanskje være å laste dem inn automatisk via kode når brukeren trykker på f.eks. en knapp: void VisMinControl_Click(...) { EnPanelIFormenMin.Controls.Clear(); MinUserControl uc = new MinUserControl(); uc.Dock = DockStyles.Dock; ? EnPanelIFormenMin.Controls.Add( uc ); } Lenke til kommentar
ilpostino Skrevet 29. september 2006 Forfatter Del Skrevet 29. september 2006 Bruk UserControls og man trenger ikke ha alle i GUI designeren heller. Det beste vil kanskje være å laste dem inn automatisk via kode når brukeren trykker på f.eks. en knapp: den koden brukes i action event, i dette tilfelle i knappens action event...? (kanskje teit spm, men en må spørre for å få svar) Lenke til kommentar
j000rn Skrevet 30. september 2006 Del Skrevet 30. september 2006 den koden brukes i action event, i dette tilfelle i knappens action event...? (kanskje teit spm, men en må spørre for å få svar) 6967720[/snapback] "Action event"? onClick kanskje du mente? Lenke til kommentar
ilpostino Skrevet 30. september 2006 Forfatter Del Skrevet 30. september 2006 "Action event"? onClick kanskje du mente? 6970129[/snapback] ja.. det er fra Java.. er ikke helt sikker på hva det er i C#.... (i java blir funksjonen action event brukt idet en bruker trykker feks på en knapp) Lenke til kommentar
j000rn Skrevet 30. september 2006 Del Skrevet 30. september 2006 ja.. det er fra Java.. er ikke helt sikker på hva det er i C#....(i java blir funksjonen action event brukt idet en bruker trykker feks på en knapp) 6970418[/snapback] Stemmer. Det er OnClick på vanlige knapper. Andre kontroller har andre navn på eventene som f.eks. dropdown bokser heter det OnSelectedIndexChanged osv... Fikk du løst problemet da? Lenke til kommentar
ilpostino Skrevet 30. september 2006 Forfatter Del Skrevet 30. september 2006 Stemmer. Det er OnClick på vanlige knapper. Andre kontroller har andre navn på eventene som f.eks. dropdown bokser heter det OnSelectedIndexChanged osv... Fikk du løst problemet da? 6970641[/snapback] Jeps. har vært ganske oppklarende dette. et siste spm: hva heter det når du trykker på et element i menyen da? (feks når du trykker File -> New Window i Opera) Lenke til kommentar
j000rn Skrevet 30. september 2006 Del Skrevet 30. september 2006 Jeps. har vært ganske oppklarende dette. et siste spm: hva heter det når du trykker på et element i menyen da? (feks når du trykker File -> New Window i Opera) 6970929[/snapback] Er vel OnClick på den også tror jeg?.... Hvis du bruker Visual Studio så har du jo sånn fin liste med events og med litt engelskkunnskaper har vel de fleste ganske forståelige navn... Lenke til kommentar
ilpostino Skrevet 30. september 2006 Forfatter Del Skrevet 30. september 2006 Jeps. har vært ganske oppklarende dette. et siste spm: hva heter det når du trykker på et element i menyen da? (feks når du trykker File -> New Window i Opera) 6970929[/snapback] Er vel OnClick på den også tror jeg?.... Hvis du bruker Visual Studio så har du jo sånn fin liste med events og med litt engelskkunnskaper har vel de fleste ganske forståelige navn... 6971101[/snapback] takk for all hjelp Lenke til kommentar
ilpostino Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 (endret) et spørsmål til i rekken: Jeg må lage nye forms for de nye vinduene som skal åpnes, ikkesant? edit: jhvordan får en tatt med seg menyen fra en form til en annen? Endret 3. oktober 2006 av ilpostino Lenke til kommentar
j000rn Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 Se prosjektet i TestWindows.zip. C# .Net 2.0 Kan gjøres mer ryddig, men det er ihvertfall et veldig raskt eksempel. TestWindows.zip Lenke til kommentar
Lurifaksen Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 (endret) Glimrende - satt akkurat og lurte på det samme Poenget er altså her at det lages et "panel" i hoved-Formen, og det opprettes nye nye "UserControls" som tilpasses slik at de passer i "panelet"? Eller kanskje det lureste er å lage en "mal", og så bruke add UserControl Inherited? Er det forresten denne metoden her (panel, med usercontrols) som er vanlig å bruke (som f.eks. er brukt i outlook), eller er dette bare et kjapt forslag til løsning fra deg? Er f.eks outlook bygget ved at det er laget forskjellige UserControls? Og hver gang du klikker på f.eks. "kontakter" sjekker den om en "kontakter" Usercontrol allerede eksisterer, hvis ikke lager en ny som plasseres i "panel" kontrollen i Formen? Og før det må Controls.Clear() kjøres? if (CachedWindows.ContainsKey("EtVindu") == false) { CachedWindows.Add("EtVindu", new EtVindu()); CachedWindows["EtVindu"].Dock = DockStyle.Fill; } pContent.Controls.Clear(); pContent.Controls.Add(CachedWindows["EtVindu"]); Endret 4. oktober 2006 av Lurifaksen Lenke til kommentar
j000rn Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 Det var et kjapt eksempel på hvordan det kan gjøres ja. Og som de fleste andre ting når det gjelder programmering finnes det sikkert hundre andre måter å gjøre det på. Hvis noen av vinduene bruker mye minne f.eks. kan det være lurt å ikke "cache" dem slik jeg gjør. Men da må man huske på å "lagre instillinger" hver gang de ikke skal vises mer. "Cachingen" her gjør også at programmet har kortere oppstartstid. Hvis jeg hadde hatt mange vinduer ville jeg kanskje også brukt Reflection + et interface for å vise menyvalgene dynamisk. Gjør dette i et prosjekt jeg lager nå faktisk hvor man bare slenger DLL filer inn i en mappe og så blir de automatisk vist i en meny og trykker man på den kommer vinduet (som er kodet i DLL filen) opp. Bruker heller ikke Panel i det prosjektet, men vanlige MDI vinduer... Jeg er helt enig i at man bør enten arve av en annen form eller implementere et interface for å sikre at alle "vinduene" har nogenlunde lik funksjonalitet. F.eks. når man lukker programmet skal jo alle vinduene lagre instillinger... Da ville jeg implementert en interface f.eks. IMinPanel: (eksempel på funskjonalitet... sikkert ikke korrekt syntax..) public void FormClosing(...) // i hovedformen din { foreach(IMinPanel p in CachedWindows) { if( p.CantCloseNow ) { e.cancel = true; MessageBox.Show( p.Title + " kan ikke lukkes nå for der skjer det noe viktig..."); return; } } foreach(IMinPanel p in CachedWindows) { p.SaveSettings(); } } 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å