Brug af StatusBar i en C# applikation

Tags:    c#
Skrevet af Bruger #4522 @ 24.10.2003

Introduktion


De fleste applikationer har en stausbar som bruges til at give informationer til brugeren.

En status bar kan indeholde simpel tekst som giver feedback til brugeren af programmet, f.eks. betydningen af menu kommander osv., såkaldt "flyby tekst". En anden form for information som tit kan findes i en statusbar er tilstandsinformation - dvs. information om programmet eller det pågældende objekt som brugeren er ved at manipulere. Som eksempel på sådanne en statusbar viser følgende billede Microsoft Words (c) statusbar:



Som det ses kan en statusbar indeholder både tekst og billeder/grafik, og endvidere kan den indeholde paneller som muliggør gruppering af informationerne i relevante kategorier.

Lad kodningen begynde


Fyr op under Visual Studio .NET (denne artikel forudsætter at du bruger VS.NET til programmering af dine C# applikationer). Start et nyt projekt: Under "Project Types" vælges "Visual C# Projects" og under "Templates" vælges "Windows Application", præcis som følgende billede viser:



Jeg har valgt at kalde projektet for StatusBarDemo, men du kan selvfølgelig helt selv vælge hvad du vil kalde det.

Træk nu et StatusBar objekt fra Toolbox vinduet og over på din Form. Visual Studio vil give din statusbar navnet statusBar1 som vi også vil bruge.

Lad os nu kigge lidt nærmere på den genererede kode som findes i vores Form1.cs fil. I metoden InitializeComponent findes koden; lad os koncentrere os om den del der har med StatusBar klassen og altså vores objekt at gøre:

Fold kodeboks ind/udKode 


Før vi går igagn med at diskutere ovenstående kode, så husk at det der står i InitializeComponent metoden er genereret at designeren i Visual Studio hvorfor du ikke bør ændre i det direkte.

Okay, lad os kigge nærmere på hvordan vi intialiserer vores statusbar objekt. Vi starter selvfølgelig med at kalde new operatoren på konstruktoren i klassen StatusBar og opretter altså et objekt som referencen statusBar1 nu peger på. Visual Studio placerer herefter statusbaren i vores vindue ved at sætte dens Location property til et Point objekt. Loaction er en property som er nedarvet fra Control klassen (Location kan både læses og skrives og angiver kontrollens øverst-venstres koordintaer i forhold til dens container, i dette tilfælde vores Form).
Herefter sættes Name property til "statusBar1" (det samme som referencenavnet). Denne property kan bruges til ved køretid at bestemme/evaluere kontrollen ved navn istedet for type eller programmatisk navn. Tit vil man (som i dette tilfælde) sætte Name til det samme som navnet på referencen.
Det næste der sker er at statusbarens Size property sættes. Denne egenskab bestemmer kontrollens bredde og højde.
TabIndex, som er den næste property der sættes, bestemmer den pågældende kontrols tabulator index i den container som kontrollen nu er en del af. Dette kan virke lidt underligt da man jo ikke normalt "tabber" sig frem til en statusbar, men Visual Studio gør dette for at sikre at alle kontroller har et unikt tab index. Det betyder dog ikke at man kan tabbe sig til statusbaren - dens TabStop property er nemlig sat til false (default).
Næstsidst sættes statusbarens tekst til "statusBar1", det vil sig at når vores program kører vil der i statusbaren stå "statusBar1"! Alt dette ordnes via endnu en property: Text.
Herefter føjes statusbaren til vores Form ved Add metoden som tilføjer en kontrol til containerens samling/collection.

Lad os nu prøve at køre vores program for at se statusbaren i aktion:



Såmænd, såmænd vores lille statusbar virker! Det må dog siges at det er en meget kedelig og ubrugelig statusbartekst, men den kan jo ændres i løbet af programmets køretid; alt efter behov. Lad os dog lige prøve at sætte statusbarens Text property til noget mere fornuftigt. Vi gøre dette via Property Editoren i Visual Studio:



Her har jeg så sat værdien til "Klar...". Du kan ved at kompilere og køre programmet igen sikre dig at statusbaren nu viser "Klar..." og ikke "statusBar1".

Nu har vi altså en fungerende statusbar hvis Text property man kan manipulere programatisk i løbet af programmets køretid. På denne måde kan man videregive vigtig information til burgeren af applikationen.

Hvis man har mange informationer man ønsker at vise i statusbaren bør man bruge statusbarpaneller. Via ens statusbars Panels property kan man tilføje en eller flere paneller til statusbaren og derved gruppere informationerne fornuftigt. I en anden artikel vil jeg kigge på hvordan man kan udvide ens statusbar med paneller!

Til sidst et lille fif. Default for Property Editoren i Visual Studio er en kategori sortering istedet for alfabetisk sortering. Jeg kan dog virkelig anbefale at vælge den alfabetiske sorteringsmetode. Den gør det meget nemmere at finde de pågældende properties (IMHO). Følgende billeder viser hvor nemt det er at ændre dette:



Som sagt vil jeg i næste artikel kigge nærmere på brugen af statusbarpaneller. Hvis du har et specifikt ønske om en artikel indenfor .NET og C# skal du være velkommen til at kontakte mig.

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (2)

User
Bruger #2796 @ 31.10.03 16:24
Lidt kort... Måske ville det også være godt hvis du havde givet et eksempel på hvordan det bliver brugt... Det ville have boostet din artikel noget mere...
User
Bruger #4522 @ 04.11.03 12:18
Jeps, du har helt ret. Den er alt for kort. Min næste bliver MEGET længere ;)
Du skal være logget ind for at skrive en kommentar.
t