22. februar 2007 - 10:20Der er
11 kommentarer og 2 løsninger
Forhindre dobbeltklik i windows form
Hej. Jeg har lavet en win form, hvorpå der er nogle knapper. Når brugeren trykke rpå en knap afvikles noget kode. Hvis brugeren af vane, eller ved et uheld trykker 2 gange afvikles koden 2 gange lige efter hinanden. Det er ikke så godt. Knappen skal dog kunne bruges igen ummidelbart efter første klik. Bare ikke 2 gange hurtigt efter hinanden. Jeg har forsøgt at disable knappen i et sekund for at forhindre dette, men hvis man dobbeltklikker, huskes det ekstra klik, og koden afvikles igen så snart knappen bliver enabled. Nogen der har gode løsningsforslag på dette problem?
Jeg kan ikke finde nogen event der hedder dobbeltklik. Det virker som om programmet fanger 2 enkelt klik i stedet. Jeg har overvejet løsningen med datetime. Vil gerne høre om der er andre løsninger som er indbyggede i C#.
Du kan gøre det på en mere automatiseret måde med en timer: //onclick event på knap. private void button1_Click(object sender, EventArgs e) {
Button b = sender as Button; //fjern event fra knappen b.Click -= button1_Click; System.Diagnostics.Debug.WriteLine("test"); //lav en timer Timer t = new Timer(); //sæt timer interval til 1 sek t.Interval = 1000; //lav en tick event funktion t.Tick += new EventHandler(t_Tick); //starttimer t.Start(); }
void t_Tick(object sender, EventArgs e) {
Timer t = sender as Timer; //udskriv test linie System.Diagnostics.Debug.WriteLine("sdgsdgsdg"); //tilføj event til button button1.Click += button1_Click; //disable timer. t.Stop(); }
jeg sidder slet ikke med Visual Studio lige nu så kunne ikke teste:) men som jeg skrev i sidste kommentar så kan man ikke holde sig til de events man kan se i visual studio da der findes mange flere. jeg huskede så en forkert, men ikke noget man ikke ville finde frem til selv via. intelli-sense:=)
Det blev da til en del kode i Dr. chaos eksemplet. Jeg holder mig til løsningen me den global timer. Det er nemt at styre, og virker fint. Det har løst mit problem. Jeg fandt doubleclick på knappen, men som Chaos skriver var det ikke løsningen.
Tak for hjælpen til jer begge. Jeg vil gerne dele pointene da begge svar har hjulpet med beslutningen. Vh Flyver23
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.