Avatar billede onkel_satan Nybegynder
20. september 2006 - 12:15 Der er 9 kommentarer og
1 løsning

Udskrvning af label .

Har siddet og brygget lidt koden sammen omkring events og har så lavet et lille ur. Dette virker også godt nok, kan skrive tiden ud i consollen. Nu vil jeg saa have det udskrevet i en lille gui. Har lavet en form og added en lille label som vis her
class Test : Form {

        private Label l1;

        public Test() {
            this.StartPosition = FormStartPosition.CenterScreen;
            this.ClientSize = new Size(600, 400);
            MyEvent Clock = new MyEvent();
            Clock.OnSecondChange += new SecondEventHandler(DisplayClock);
            l1 = new Label();
            this.Controls.Add(l1);
            Clock.Start();
           
        }

        public void DisplayClock(Object sender, ClockEventArgs e) {
            l1.Text = e.hour + ":" + e.min + ":" + e.sec;
        }

        public void sletMig() {
            l1.Text = "Det her funger!";
        }

        static void Main() {
            Application.Run(new Test());
        }
    }
}

Udfoere jeg sletMig() metoden popper formen fint op og skriver det den nu er sat til. Men metoden DisplayClock går det ikke helt som jeg vil. Har debugget lidt og l1.text bliver sat korrekt, men hvorfor bliver det ikke udskrevet?

Måske er det min forståelse for de her grafiske elementer der fejler, men bliver l1 ikke 'tegent' på skaermen/form'en hver gang lebel.text saettes, ligesom med grapghics graphics.rectangle(brush(), color etc.) ?
Avatar billede -holmen- Nybegynder
20. september 2006 - 13:21 #1
Prøv dette... er ik helt sikker på at det virker, men ku ik få dit eksempel til at virke.

l1.Text = (e.hour + ":" + e.min + ":" + e.sec).ToString();
Avatar billede onkel_satan Nybegynder
20. september 2006 - 13:30 #2
Nope.. det er ikke det der er galt. Har endda proevet bare me l1.Text = "Text"; Formen bliver simpelthen ikke vist.

Du kan se hele koden her:
www.onk.dk/temp/MyEvent.cs
www.onk.dk/temp/Test.cs
Avatar billede -holmen- Nybegynder
20. september 2006 - 14:01 #3
Kan du ik sende mig hele projektet? Så ser jeg på det når jeg kommer hjem.
Du kan sende det til thomas_holm@hotmail.com
Avatar billede onkel_satan Nybegynder
20. september 2006 - 14:08 #4
jo, goer jeg.
Avatar billede -holmen- Nybegynder
20. september 2006 - 15:24 #5
Fejlen ligger i:

public void Start({
          for (;;)

Du har fået lavet en evig-løkke.

Men var meningen ikke at du skulle lave et ur der skulle gå? Det gør du bedst med en timer component.
Avatar billede onkel_satan Nybegynder
20. september 2006 - 15:32 #6
Det er også meningen at den skal koere for evigt. Den trigger jo OnSecondChange eventen hvert sekundt. DisplayClock er jo registeret hos eventhandleren og skulle derfor gerne skrive tiden ud, hvilket den også goer i consollen, men ikke på/i min label.

Jeg ved godt at det er nemmere at bruge timer component, men det var saadan set bare for at sikre jeg havde forstået events og dens handling korrekt at jeg byggede det hele op fra bunden. Og den virker jo også, fatter bare ikke hvorfor den ikke vil udskrive det i gui'en.
Avatar billede onkel_satan Nybegynder
20. september 2006 - 16:20 #7
ahhh nu ser jeg  problemet med den loekke.. skal nok ha' smidt den i en thread for sig selv.
Avatar billede onkel_satan Nybegynder
20. september 2006 - 16:43 #8
Smid et svar for point.
Avatar billede -holmen- Nybegynder
20. september 2006 - 19:35 #9
Svar
Avatar billede -holmen- Nybegynder
20. september 2006 - 19:35 #10
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester