C# windows forms skift indhold?

Tags:    c# windows-forms

Hej folkens.

Jeg er ny i C#, og sidder egentligt bare og afprøver lidt muligheder lige nu.

Da jeg sidder med en lille idé til et program vil jeg høre hvilke muligheder der er for at lave det.

Min idé er at når programmet bliver kørt bliver man præsenteret for nogle små billeder med en lille tekst, i stil med hvis man trykker "Computer" på win7, og man bliver præsenteret for de forskellige tilgængelige drev.

Herefter, alt efter hvilket billede man klikker ind på skal man få et nyt view, og det er her jeg er lidt fortabt, fordi hvordan gør man dette med Windows forms?

Jeg vil blive meget glad hvis nogen her kan hjælpe med dette :)

Mvh.
Jesper



9 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 20 karma
Sorter efter stemmer Sorter efter dato
Hvis du vil lave pænere applikationer skal du nok over i C# WPF.
Selve Visual Studio er udviklet i WPF.

Men en måde at gøre det på kunne være at proppe alle dine Controls i forskellige Panels. Derefter kan du sætte invisible = true eller false på et Panel, og alle dets controls vil følge.



Jesper, det kommer meget an på hvor meget af dit indhold der skal skiftes ud når man klikker. Hvis dit problem er meget lig det jeg selv har haft flere gange, hvor du gerne vil have mange forskellige "sider" i samme form, som så kan vælges i en oversigt, så er der kun én standard control som er bare nogenlunde optimal, og det er TabControl. Den giver dig mulighed for at definere forskellige views og rent faktisk også kunne se dem i design time og samtidig er det også let at skifte imellem dem i runtime. Man kan så snyde lidt og "skjule fanerne", hvis det ikke er et regulært tab interface man ønsker - det har jeg selv gjort tidligere uden at det gav andre problemer :)

Det er i øvrigt meget muligt at nogen har fundet på at lave en smart, dedikeret control til det siden jeg selv skulle løse problemet for nogle år siden.

Mht. WPF så vil jeg som Brian sige at begge dele har fordele og ulemper. Jeg gik selv i gang med WPF for 1½ år siden, presset af at mange 3rd party controls bliver hurtigst og bedst udviklet til WPF. Min personlige erfaring er at WPF har en noget stejlere indlæringskurve end WinForms og at man, specielt i starten, vil være overrasket over hvor meget man skal til at skrive/redigere i XAML fremfor bare at trække lidt rundt i designeren. WPF har bestemt også sine fordele men lad være med at skifte udelukkende fordi det lyder smart og moderne :)

WPF er i øvrigt ikke automatisk "pænere", men lige akkurat dit problem løser det faktisk ret godt, da du kan have UserControls der loades ind som små, separate dele på dit Window. Sådan har jeg selv løst problemet da jeg gik fra WinForms til WPF. Det er dog næppe grund nok til at skifte, synes jeg :)

Mvh.

Kasper (TSW)



EDIT: Hvilke fordele har WPF over windows forms..?


Det er næsten en religion, men du kan læse lidt om forskellene her:

http://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/


Jeg bruger stadig Forms, men overvejer da om jeg kan få nogle fordele ved at skifte. Men nu har jeg overvejet det i et par år :-)





Da jeg sagde pænere mente jeg kodemæssigt, men jeg vil da tage et kig på det c# WPF :)

Den med visibility vil jeg kigge lidt nærmere på, det kunne godt lyde som noget der vil virke! :)

EDIT: Hvilke fordele har WPF over windows forms..?

Mvh.
Jesper


WPF er et grafisk undersystem til Windows Forms. Det benytter sig af Direct X, så derfor kan det rendere både 2D og 3D, samt vector og runtime animationer. Når man bygger sin UI op i WPF, bruger man XAML (Hvilket man også udelukkende bruger når man udvikler i Windows 8 Metro).



Du kan åbne en ny form, og lukke den gamle :)

Ved godt at det garanteret kan gøres bedre, men det er en meget simpel måde.



Ja det er selvfølgelig en måde.. Men jeg tænker nemlig også at der er en "pænere" måde at løse det på :-)



Da jeg sagde pænere mente jeg kodemæssigt, men jeg vil da tage et kig på det c# WPF :)

Den med visibility vil jeg kigge lidt nærmere på, det kunne godt lyde som noget der vil virke! :)

EDIT: Hvilke fordele har WPF over windows forms..?

Mvh.
Jesper



Indlæg senest redigeret d. 15.08.2012 08:45 af Bruger #17174
Tak til jer alle, dejligt med nogle gode forklaringer.

Lige præcis den løsning du beskriver med at lave det med tabcontrols var en løsning jeg også tidl. havde tænkt på, og som jeg sikkert vil prøve mig med.

Ang. WPF tror jeg det kommer til at vente lidt så, da jeg som sagt er ny til C# tror jeg det er en fordel at sætte sig ind i tingene løbende for mig, og ikke koncentrere sig så meget om det andet endnu (XAML osv.)

Mvh.
Jesper



Selv tak, Jesper. Husk at stemme på det/de indlæg der har hjulpet dig :)

Mvh.

Kasper (TSW)



t