Avatar billede starf Nybegynder
08. november 2004 - 20:43 Der er 41 kommentarer og
1 løsning

flere beskeder i en lable box?

har en knap der udføre nogle funktioner, som f.eks at hente data ud fra en database og sådan..

vil så gerne have at den løbende skriver i en lablebox hvad den har gang i.. min kode ser sådan ca sådan her ud:

lablebox.Text = "Connector";
update1();
labelbox.Text = "Henter data fra mysql";
update2();
labelbox.Text = "sender data til mysql";
update.Text = "færdig ingen fejl";

problemet er den kun altid skriver den sidste besked, og aldrig alle de andre, hvordan kan det værer?
Avatar billede starf Nybegynder
08. november 2004 - 20:45 #1
update.Text skal self også ha været labelbox.Text
Avatar billede kalp Novice
08. november 2004 - 20:45 #2
udskriver den begge ?

labelbox.Text = "sender data til mysql";
update.Text = "færdig ingen fejl";

eller kun

update.Text = "færdig ingen fejl";
Avatar billede starf Nybegynder
08. november 2004 - 20:48 #3
progressBar1.Value = 0;
           
       
            label18.Text = "Connecting";
            //opdatere progresbar1
            label18.Text = "Menu Liste Output";
            UpdateList();
            progressBar1.Value = 12;
           
       
           

            UpdateList2();

           
            label18.Text = "Filling in Tekst";
            UpdateList3();

            progressBar1.Value = 37;

           
            label18.Text = "File Output";
            UpdateList10();

            progressBar1.Value = 43;

           
            label18.Text = "Kategori Output";
            UpdateList4();
           
            progressBar1.Value = 50;
           

            label18.Text = "Filling in Kategori";
            UpdateList11();
           
            progressBar1.Value = 55;
           
           
            label18.Text = "Filling in Tekst";
            UpdateList5();
           
            progressBar1.Value = 62;
           
           
            label18.Text = "Filling in File";
            UpdateList12();
           
            progressBar1.Value = 68;
           

            label18.Text = "Bruger Ordre Output";
            UpdateList6();
           
            progressBar1.Value = 75;
           

            label18.Text = "Product Output";
            UpdateList7();
           
            progressBar1.Value = 80;
           
           
            label18.Text = "Ordre Output";
            UpdateList8();
           
            progressBar1.Value = 87;
           

            label18.Text = "Filling in Ordre";
            UpdateList9();       
           
            progressBar1.Value = 100;
           
           
            label18.Text = "DONE - no errors";
   
dette er min kode!

meningen er der er en lable boks hvor der står hvad funktion den er igang med... så man kan se hvad der laves..
Avatar billede kalp Novice
08. november 2004 - 21:10 #4
den er jeg med på men hvilken linie præcis er det den kun udskriver?
Avatar billede starf Nybegynder
08. november 2004 - 21:16 #5
den sidste altid kun... "done no errors" fjerner jeg den så tager bare den der så kommer sidst... osv...
Avatar billede kalp Novice
08. november 2004 - 21:22 #6
hvad så hvis lader være med at bruge UpdateList() og istedet siger
label18.Text = " blah blah " ;


hver gang?
Avatar billede starf Nybegynder
08. november 2004 - 21:26 #7
UpdateList() udføre jo en funktion uden dem gør knappen jo intet
Avatar billede kalp Novice
08. november 2004 - 21:28 #8
jeg programmere kun java... men kan du ikke samle de to handlinger sammen?

så den først siger

label18.Text = " blah blah " ;
UpdateList9();   

?

ved ikke hvordan det gøres i {} eller hvordan.. men så den først ændre navnet så begynder på updatelist.. eller omvendt
Avatar billede starf Nybegynder
08. november 2004 - 21:32 #9
er lige meget i hvad række følge det står om det kommer først eller sidst
Avatar billede basementjack Nybegynder
08. november 2004 - 21:35 #10
En klassiker.. = sletter alt.. += lægger til.. ;)

labelbox.Text = "Connector";
update1();
labelbox.Text += "Henter data fra mysql";
update2();
labelbox.Text += "sender data til mysql";
labelbox.Text += "færdig ingen fejl";
Avatar billede starf Nybegynder
08. november 2004 - 21:42 #11
det der sker nu er at intet står, og når dne så kommer til sidste linie står alt bare i en lang linie.. altså alt det tekst jeg har forsøgt at skrive så fra dit eksemepel vil der stå dette i lable feltet:

Connector Henter data fra mysql sender data til mysql færdig ingen fejl
Avatar billede kalp Novice
08. november 2004 - 21:42 #12
Det klart...

+= betyder bare at forlænge strengen
Avatar billede basementjack Nybegynder
08. november 2004 - 21:44 #13
Ja.. Men var det ikke også problemet?...

"problemet er den kun altid skriver den sidste besked, og aldrig alle de andre, hvordan kan det værer?"
Avatar billede kalp Novice
08. november 2004 - 21:45 #14
hehe

den skal skrive det løbende!
Avatar billede starf Nybegynder
08. november 2004 - 21:46 #15
den skal først skrive

besked 1, så besked 2 så besked 3, som den går igennem listen af ting der bliver udført i knappen...

fra eksempel skal den først skrive

"Connecting" når den så kommer til update 1 skal den skrive
Henter datra fra Mysql
når den så kommer til update2 skal den skrive
sender data til mysql
og så

færdig besked
Avatar billede kalp Novice
08. november 2004 - 21:46 #16
starf:

nu ved jeg ikke hvilke funktioner din knapper laver... men kan du ikke lave en
labelbox.Text += "blah"
i den funktion der bliver kaldt?
Avatar billede kalp Novice
08. november 2004 - 21:47 #17
labelbox.Text = "blah"
Avatar billede starf Nybegynder
08. november 2004 - 21:47 #18
jo kunn jeg vel godt, men problemet e rjeg ind imellem køre funktionerne uden at udskrive det nemelig........
Avatar billede basementjack Nybegynder
08. november 2004 - 21:48 #19
starf det er jo det den gør..

Den holder jo ikke pause hver gang den har udført en line..
Avatar billede starf Nybegynder
08. november 2004 - 21:49 #20
den den skriver jo bare alt på engang,, den skal skrive det løbende..
Avatar billede basementjack Nybegynder
08. november 2004 - 21:52 #21
Hvis du har en function som skriver til labelbox hver gang den gør noget, vil denne når den er færdig, og dvs ser dig resultatet vil alt functionen har skrevet ud til labelbox stå i labelbox.

Ved ikke hvad du mener med løbende?

Hvis den kun skal skrive Connector, skal du kun kalde
{
lablebox.Text = "Connector";
update1();
}

Kalder du hele koden, får du også alt i labelbox.
Avatar billede kalp Novice
08. november 2004 - 21:54 #22
starf:

jeg må igen tage udgangspunk i java.. kan du ikke override? på en eller anden måde.. eller lave om på den så den tager en parameter med så du ved om den skal udskrive det eller ej..

måske en besværlig løsning hehe.. men prøver at være kreativ..
Avatar billede basementjack Nybegynder
08. november 2004 - 22:00 #23
kalp - Det kan man vel godt..
Jeg er dog VB.Net koder, så tag syntaks med et gran salt..
_____________________________________
static void update1(message string) {
bla;
...;
updater;
...;
bla;
labelbox.Text = message;
}
Avatar billede kalp Novice
08. november 2004 - 22:06 #24
basementjack:

jeg er java programmør så har heller ikke selv styr på syntaxen her hehe
men ser på problemstillingen i forhold til java... derfor jeg spørger: )

men så burde han vel prøve det istedet: )
Avatar billede basementjack Nybegynder
08. november 2004 - 22:09 #25
Well.. Hvis han/hun gør det så vil det stadig komme ud lige efter hinanden... Ellers skal der kaldes en function og applicationen skal pause på en eller måde før den fortsætter, og så kalde den næste..

starf - Er det som brug til fejlsøgning?.. (Så findes der noget bedre, nemlig)
Avatar billede hald. Nybegynder
08. november 2004 - 22:14 #26
ved ikke om du har fundet en løsning,...men umiddelbart kunne du jo lave en tråd, hvor du så sætter en mindre pause imellem udførelserne af de forskellige metoder. På den måde ville du (brugeren) hele tiden kunne se hvorlangt processen er i forløbet.
For som starf også skriver, når du jo reelt ikke at se de andre "beskeder", som du skriver ud til din Label...
Avatar billede hald. Nybegynder
08. november 2004 - 22:31 #27
go' morgen :-) Så ik' lige at det var dig der havde oprettet spørgsmålet...
Avatar billede kalp Novice
08. november 2004 - 22:42 #28
hald:

han burde jo kunne nå og se dem hvis processen tager tid... men hvis det småkode så ja så når man nok aldrig at se de andre labels.. men går den langsomt vil jeg mene hans kunne prøve at kalde dem inde i funktionerne
Avatar billede starf Nybegynder
08. november 2004 - 22:45 #29
hej igen

det er til brug, så brugeren kan se hvad funktion der udføres. ved man kan gøre det med en statusbar, vil bar ehelt gerne undgå at bruge en status bar!

hvordan indsætter man en pause?

bliver desvære nød til at smutte nu.. men kigger her igen imorgen.. på forhånd tak for hjælpen.
Avatar billede starf Nybegynder
08. november 2004 - 22:45 #30
foresten så tager nogle af tingen rimeligt lang tid, så det er ikke fordi den ikke kan nå at vise dem alle sammen...
Avatar billede Syska Mester
08. november 2004 - 22:51 #31
Hvad er det de mssql database ting laver???

Det er nok helt sikkert fordi at det tager 0.001 sek at udføre det, og så vil du aldrig se dem kommer løbende.....

Prøv at smide en MessageBox ind hver gang...

System.Windows.Forms.MessageBox("ved 1");
update1();
System.Windows.Forms.MessageBox("ved 2");
update2();
System.Windows.Forms.MessageBox("ved 3");
update3();

Så stopper den helt hver gang, så er du i hvert fald sikker på hvor den er henne....

Nå, men vi får se om det virker når du kommer på igen...

Smider et svar, da jeg nok ikke kommemr på det meste af dagen i morgen, hvis det er svar nok...

// ouT
Avatar billede starf Nybegynder
09. november 2004 - 15:34 #32
1: det vil jo bare vise en masse msg boxe som ikke er meningen

2: koden virker ikke
Avatar billede Syska Mester
09. november 2004 - 17:02 #33
nej, smed bare nogle funktioner ind, du skal selvf erstartte mine update3(); med dine egne....

1) ja, for at se om den kommer dertil hvor du regner med at den gør. Det er jo ikke nemt at teste din kode når vi kun kan se 1% af den, eller deromkring....

Men bliver alt udført som sker i dine 3 funktioner????
Avatar billede Syska Mester
09. november 2004 - 17:03 #34
ups, skulle da også have været
System.Windows.Forms.MessageBox.Show("ved 1");
update1(); // dine egne funktioner
System.Windows.Forms.MessageBox.Show("ved 2");
update2(); // dine egne funktioner
System.Windows.Forms.MessageBox.Show("ved 3");
update3(); // dine egne funktioner

Så skulle du gerne kunne se fremskidt i din TextBox.....
Avatar billede hald. Nybegynder
09. november 2004 - 17:05 #35
Er det udelukkende for vise brugeren, hvor langt der er "igen" før at alle informationer er hentet? I så fald ville jeg lave en seperat tråd.

Kan godt prøve at bikse et eksempel sammen ?
Avatar billede starf Nybegynder
09. november 2004 - 17:11 #36
altså nu skal det siges jeg langt fra er god til at kode c# er igang med at lære så det..

ja det er for at brugeren kan se hvad funktion der laves, meningen er at have en progressbar og så et tekst felt der ændre sig, hvor der står hvad operation der laves..
Avatar billede hald. Nybegynder
09. november 2004 - 17:15 #37
ok,...men det er reelt ikke så svært igen. prøver lige at lave et lille eksempel,..og så kan du jo altid vælge eller vrage ;-)

det vare lige et øjeblik
Avatar billede starf Nybegynder
09. november 2004 - 17:20 #38
takker
Avatar billede hald. Nybegynder
09. november 2004 - 17:33 #39
Ok,...here you go:

Jeg har ikke lavet nogle kommentar til koden, men du sprøger barem hvis det er noget du er i tvivl om.

--- KLIP ---

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;


namespace Eksperten5593313
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        //    Variabler, til vores tråd:
        private int counter = 0;
        private int work_status = 0;
        Thread th;


        //    Diverse komponenter
        private System.Windows.Forms.Button butStart;
        private System.Windows.Forms.ProgressBar pgbStatus;
        private System.Windows.Forms.Label lblStatus;
        private System.Windows.Forms.Label lblWorkStatus;
        private System.Windows.Forms.Button butReset;


        private System.ComponentModel.Container components = null;

        public Form1()
        {
            InitializeComponent();
        }

       
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.butStart = new System.Windows.Forms.Button();
            this.pgbStatus = new System.Windows.Forms.ProgressBar();
            this.butReset = new System.Windows.Forms.Button();
            this.lblStatus = new System.Windows.Forms.Label();
            this.lblWorkStatus = new System.Windows.Forms.Label();
            this.SuspendLayout();
            //
            // butStart
            //
            this.butStart.Font = new System.Drawing.Font("Arial", 8.25F);
            this.butStart.Location = new System.Drawing.Point(16, 184);
            this.butStart.Name = "butStart";
            this.butStart.Size = new System.Drawing.Size(104, 24);
            this.butStart.TabIndex = 0;
            this.butStart.Text = "Start";
            this.butStart.Click += new System.EventHandler(this.butStart_Click);
            //
            // pgbStatus
            //
            this.pgbStatus.Location = new System.Drawing.Point(48, 152);
            this.pgbStatus.Name = "pgbStatus";
            this.pgbStatus.Size = new System.Drawing.Size(184, 16);
            this.pgbStatus.TabIndex = 2;
            //
            // butReset
            //
            this.butReset.Location = new System.Drawing.Point(152, 184);
            this.butReset.Name = "butReset";
            this.butReset.Size = new System.Drawing.Size(88, 24);
            this.butReset.TabIndex = 3;
            this.butReset.Text = "Reset";
            this.butReset.Click += new System.EventHandler(this.butPause_Click);
            //
            // lblStatus
            //
            this.lblStatus.Location = new System.Drawing.Point(48, 96);
            this.lblStatus.Name = "lblStatus";
            this.lblStatus.Size = new System.Drawing.Size(184, 48);
            this.lblStatus.TabIndex = 4;
            this.lblStatus.Text = "label1";
            this.lblStatus.TextAlign = System.Drawing.ContentAlignment.TopCenter;
            //
            // lblWorkStatus
            //
            this.lblWorkStatus.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
            this.lblWorkStatus.Location = new System.Drawing.Point(104, 232);
            this.lblWorkStatus.Name = "lblWorkStatus";
            this.lblWorkStatus.Size = new System.Drawing.Size(80, 24);
            this.lblWorkStatus.TabIndex = 5;
            this.lblWorkStatus.TextAlign = System.Drawing.ContentAlignment.TopCenter;
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(292, 266);
            this.Controls.Add(this.lblWorkStatus);
            this.Controls.Add(this.lblStatus);
            this.Controls.Add(this.butReset);
            this.Controls.Add(this.pgbStatus);
            this.Controls.Add(this.butStart);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

        }
        #endregion

   
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }


        public void doUpdate()
        {
            if(this.pgbStatus.Value == this.pgbStatus.Maximum)
            {
                lblStatus.Text = "Done !!!";
                return;
            }


            if(work_status == 0)
                lblStatus.Text = "Initialisere services...";
            this.doLoop();
            this.pgbStatus.Value += 20;

           


            if(work_status == 1)
                lblStatus.Text = "Downloader klub informationer...";
            this.doLoop();
            this.pgbStatus.Value += 20;


            if(work_status == 2)
                lblStatus.Text = "Konveterer soap resultat til xml-filer...";
            this.doLoop();
            this.pgbStatus.Value += 20;

            if(work_status == 3)
                lblStatus.Text = "Afslutter installation...";
            this.doLoop();
            this.pgbStatus.Value += 20;

            if(work_status == 4)
                lblStatus.Text = "Installation blev udført korrekt.";
            this.doLoop();
            this.pgbStatus.Value += 20;
                       
        }


        //    loop - til at teste tråden. Du vil selvfølgelig udskifte
        //    doLoop-kaldende med dine egne løkker:
        private void doLoop()
        {
            for(int i = 0; i < 10000; i++)
            {
                this.lblWorkStatus.Text = counter.ToString();               
            }

            this.work_status++;
        }

        private void butStart_Click(object sender, System.EventArgs e)
        {
            this.pgbStatus.Maximum = 100;
            this.pgbStatus.Minimum = 0;
            this.pgbStatus.Step = 1;

            th = new Thread(new ThreadStart(doUpdate));
            th.Start();

           
        }


        private void butPause_Click(object sender, System.EventArgs e)
        {
            this.work_status = 0;
            this.pgbStatus.Value = 0;
       
        }
    }
}

--- KLIP ---
Avatar billede hald. Nybegynder
09. november 2004 - 17:35 #40
du bør kunne smide hele koden ind i et nyt projekt, og så udskifte den eksisterende kode på Form1.cs...
Avatar billede starf Nybegynder
09. november 2004 - 17:53 #41
takker smid et svar og få point
Avatar billede hald. Nybegynder
09. november 2004 - 18:00 #42
var så lidt,...håber du kunne bruge det til noget.
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