Csharp/.NET-rammeverket/Windows Forms

Fra Wikibøker – frie læremidler

Windows Forms[rediger]

Dette namespacet er sannsynligvis noe av det du kommer til å bruke mest. Dette inneholder alt man trenger av klasser for å lage en god og oversiktelig GUI. Først starter vi med klassen Control, dette er basisklassen for de fleste delene av Windows Forms. Denne klassen spesifiserer alle generelle funksjoner, som Location, Size, Text og en hel del andre.

Form[rediger]

Form arver fra ContainerControl, som igjen arver fra Control, og er klassen man bruker for å legge til nye forms. Som regel arver man fra Form klassen for å legge til det man trenger inne i klassen i constructoren. Dette er ikke nødvedig, men vanlig fremgangsmåte, siden det er den mest oversiktelige måten å gjøre det på. For å legge til kontroller til en annen ContainerControl, bruker man egenskapen Controls, som er en collection. Ved å legge til kontroller i Controls, vil de dukke opp på ContainerControlen, så lenge Visible er satt til true. For å vise en form, kaller man Show, eller ShowDialog, forskjellen er at Show ikke venter på at formen blir lukket før den fortsetter, og gir heller ikke tilbake noe nyttig informasjon. ShowDialog derimot viser vinduet modalt. Modalt vil si at programmet stanser helt til den modale formen er ferdig. ShowDialog returnerer også DialogResult, som forteller hva brukeren trykte på (OK, Cancel etc.) dette brukes i MessageBox klassen blant annet.

Button[rediger]

Denne kontrollen inneholder alt man trenger av funksjoner for å lage en knapp. Click event blir brukt når brukeren trykker på knappen, og trykking kan blir provosert frem ved å kalle Button.PerformClick() Button arver fra IButtonControl interfacet.

TextBox[rediger]

Textbox er en klasse som kan være en-linjet eller fler-linjet (MultiLine egenskapen), lese og skrivetilgang, eller bare lesetilgang, (ReadOnly egenskapen) den mottar Tab eller enter (AcceptTab, AcceptEnter egenskapene) Text egenskapen inneholder verdien i textbox. TextChanged event kalles hver gang Text egenskapen endres, dermed blir ikke denne kalt når brukeren flytter markøren rundt. For å hente øvrige tastetrykk, eller legge inn et filter, må man bruke KeyDown eller KeyUp event. KeyPress vil ikke ta med alle de samme funksjonene som KeyDown, eller KeyUp, men kan brueks hvis man vil sjekke om brukeren trykte på en spesiell knapp (som escape eller lignende).

RichTextBox[rediger]

Dette er en utvidet textbox, som i tillegg til å vsie tekst, også kan vise tekst i farger, og blande fonter. For å endre egenskaper på tekst, må man bruke SelectionStart, SelectionLength, SelectionFont og SelectionColor.

ListBox[rediger]

Listbox brukes til å vsie en liste med velgbare verdier. Listen inneholder en egenskap som heter Items. Merk at Items tar imot data av typen Object, og bruker ToString() funksjonen for å hente tekst fra dem, dermed kan man lage en liste av akkurat den typen man ønsker. Man kan også tegne listen selv, ved å sette OwnerDraw egenskapen, og legge til funksjoner til DrawItem og MeasureItem event.

ComboBox[rediger]

Dette er en nedtrykkbar liste, der kun valget synes så lenge listen ikke er nede. Stort sett samme regler gjelder på denne som på listbox.

PictureBox[rediger]

PictureBox brukes primært til to ting: Vise et statisk bilde på skjermen, eller som en kontainer kontroll for egenprodusert grafikk. Bildet settes i Image egenskapen, og grafikk tegnes i Paint event.

CheckBox[rediger]

Dette er en kontroll for å bestemme en boolsk verdi (true eller false) CheckBox.Checked støtter true eller false, men CheckBox.CheckState spesifiserer også Indetrminate, som gjør checkboxen grå.

Option[rediger]

Denne kontrollen er som CheckBox, bortsett fra at kun én option kan være merket i samme container.

Common dialog[rediger]

Common dialog er rammeverket for generelle dialoger, som OpenFileDialog, SaveFileDialog, OpenFolderDialog, FontDialog og ColorDialog. Alle bruker ShowDialog() for å vise dialogen.