Avatar billede stufmeister Nybegynder
14. marts 2007 - 19:04 Der er 18 kommentarer og
2 løsninger

Udfør metode efter et stykke tid i WinForm(textbox)

Hejsan
Jeg er ved at lave et system, hvor der skal scannes en masse stregkoder inde, og de skal smides i en base.
Det går også fint nok. På en måde. I øjeblikket har jeg gjort "ontexchanged" så udføres metoden. Men problemet er bare, at så bliver hver enkelt tegn smidt i hver sin række, med en blank række imellem. Det skulel gerne være sådan, at den først udfører metoden, når hele stregkoden er scannet ind. Nogle der har en idé?
Avatar billede kalp Novice
14. marts 2007 - 19:06 #1
istedet for ontextchange kunne du jo lave det på Enter tryk så send.
Avatar billede kalp Novice
14. marts 2007 - 19:08 #2
har dette kode eksempel.
http://www.kalp.dk/keyevet.zip

du skal bare tilpasse det til dit.
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:02 #3
Det skal laves så der ikke skal trykkes på noget.
Det skal bruges til at indscanne en masse stregkoder, uden at man behøver at holde øje med programmet, eller trykke noget for at komme videre.
Avatar billede kalp Novice
14. marts 2007 - 20:07 #4
så gem det i en string først.

tror ikke helt du har givet nok info, men det er måske bare mig.
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:15 #5
Systemet skal bruges til at indscanne en masse stegkoder.
Markøren sættes i textboksen, og man kan så begynde at scanne ind. Det skal fungere uden at man holde øje med winformen.
Hvergang der er scannet en stregkode ind i textboxen, skal den string der står i textboxen gemmes i en sql.
Mit problem er nu, at når man scanner noget ind, på f.eks 10 karakterer, kommer der 20 rows i min sql tabel. 1. tegn, blank, 2. tegn, blank, osv osv.
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:16 #6
kode:
        private void txtTrackNTrace_TextChanged(object sender, EventArgs e)
        {
            DateTime dato = DateTime.Today;
            int fragtid = int.Parse(cbFragtSelskab.SelectedValue.ToString());
            string trackntrace = txtTrackNTrace.Text;
            Scanning scanning = new Scanning(dato, trackntrace, fragtid);
            try
            {
                dbmgr.OpretForbindelse();
                dbmgr.SmidIBase(scanning);
            }
            finally
            {
                dbmgr.LukForbindelse();
            }
            txtTrackNTrace.Clear();
        }
Avatar billede kalp Novice
14. marts 2007 - 20:18 #7
tror sgu ikke helt det virker, men prøv at sætte tilføje using System.Threading;

og

  private void txtTrackNTrace_TextChanged(object sender, EventArgs e)
        {
Thread.Sleep(200);           
DateTime dato = DateTime.Today;
            int fragtid = int.Parse(cbFragtSelskab.SelectedValue.ToString());
            string trackntrace = txtTrackNTrace.Text;
            Scanning scanning = new Scanning(dato, trackntrace, fragtid);
            try
            {
                dbmgr.OpretForbindelse();
                dbmgr.SmidIBase(scanning);
            }
            finally
            {
                dbmgr.LukForbindelse();
            }
            txtTrackNTrace.Clear();
        }
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:24 #8
nope...Det gjorde såmænd bare en den liiige holdt en pause inden den gik videre til næste tegn. Så det samme som fra start af...bare langsommere...

Det skal lige siges at jeg jo også har en event på der hedder ontextchanged
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:25 #9
eller TextChanged hedder den jo bare
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:26 #10
hmm...den der scanner....den kan jo programmeres til at skifte linie efter endt scanning....det kan vel bruges til noget...
Avatar billede kalp Novice
14. marts 2007 - 20:33 #11
hvis den der Scanner er et objekt i .NET så ville jeg nok mere tjekke dens events og se om ikke der er en der passer bedre.
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:42 #12
Scanneren har ingen metode eller noget. Den scanner bare. Den fungerer bare den er sat til maskinen, og scanner det ind man kører den over. Det er lige meget om det er til en textbox, notepad, word eller whatever...der hvor markøren er, bliver teksten scannet ind
Avatar billede kalp Novice
14. marts 2007 - 20:47 #13
er det en textbox du gemmer til i .NET?
Avatar billede stufmeister Nybegynder
14. marts 2007 - 20:48 #14
string trackntrace = txtTrackNTrace.Text;

Den string gemmes så i basen
Avatar billede kalp Novice
14. marts 2007 - 20:56 #15
yes det er jeg med på, men hvilket objekt scanner du til? textbox? richtextarea?
Avatar billede stufmeister Nybegynder
14. marts 2007 - 21:14 #16
er ikke sikker på jeg forstår dit spørgsmål?
Avatar billede kalp Novice
14. marts 2007 - 21:14 #17
hvor har du din markør henne?:)
Avatar billede stufmeister Nybegynder
14. marts 2007 - 21:25 #18
hehe..sorry...markøren står i en textbox, og det der indscannes kommer i textboxen
Avatar billede stufmeister Nybegynder
14. marts 2007 - 21:27 #19
Markøren skifter selv linie, hvis jeg indscanner i et notepad f.eks. men har prøvet at bruge det, så den skulle køre metoden ved keypress, men det fungerede ikke
Avatar billede stufmeister Nybegynder
14. marts 2007 - 21:47 #20
Problem løst...

      private void txtTrackNTrace_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                DateTime dato = DateTime.Today;
                int fragtid = int.Parse(cbFragtSelskab.SelectedValue.ToString());
                string trackntrace = txtTrackNTrace.Text;
                Scanning scanning = new Scanning(dato, trackntrace, fragtid);

                try
                {
                    dbmgr.OpretForbindelse();
                    dbmgr.SmidIBase(scanning);
                    txtTrackNTrace.Clear();
                }
                finally
                {
                    dbmgr.LukForbindelse();

                }
            }
        }

Og så en KeyDown event....Du ledte mig på sporet, ( sammen med en på msn )...
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