31. december 2005 - 00:41Der er
9 kommentarer og 1 løsning
Event når man trykker enter?
Hej Eksperter,
Jeg har ledt efter en event til en System.Windows.Forms.TextBox, der trigges når man trykker på Enter medens man har fokus på pågældende TextBox.
Jeg har en System.Windows.Forms.Button på samme Form, som løser problemet, men jeg synes det ville virke mere praktisk hvis blot man kunne trykke Enter.
Men jeg kan ikke finde sådan en event. Er der nogen der ved hvordan man klarer den situation?
Prøv med følgende på din KeyDown event på din TextBox:
if (e.KeyCode == Keys.Enter) { //DoSomething(); e.Handled = true; }
Ved at sætte e.Handled lig true, fortæller du Windows at du selv styrerer håndteringen af denne event...og dermed undgår du den irriterende "Advarsel"-lyd.
Som jeg forstår dit oplæg, så er det du ønsker at din knap bliver trykket uanset om din knap har focus. Det eneste du skal gøre for at fikse dette er at sætte AcceptButton på din form til den aktuelle knap.
Ved at gøre dette får du samtidigt sat det rigtige button state, så man kan se at knappen bliver trykket ved enter. Der findes desuden en tilsvarende CancelButton property.
Det er også standard måden at løse det på, jeg tror blot de øvrige bidragere løb af sporet da du snakkede om key events. Det er kun i særlige tilfælde at du behøver en sådan løsning.
Fint nok, men du bør anvende min løsning, da du ellers vil have et forkert state på din knap (brugeren kan ikke se at den vil blive klikket hvis man trykker enter). At anvende key events er noget man normalt kun bruger ved Custom Controls, da man ellers hurtigt kan tilegne sig en dårlig user expirence. Bemærk at jeg ikke siger at din løsning er forkert, du vil blot ikke få den standard funktionalitet med som normalt er knyttet (og forventet) af en WinForm.
Synes godt om
Ny brugerNybegynder
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.