Keypress opvragen in C#

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Pykow
  • Registratie: Augustus 2007
  • Laatst online: 17-09 11:11

Pykow

Angelo OTR

Topicstarter
Ik probeer een manier te vinden om mijn KeyPress op te vragen. Dus wanneer ik op een Enter Toets klik dat ik dan een MessageBox kan laten zien. Heeft iemand enige idee hoe ik dit kan aanpakken.

Ik heb op dit moment

/---------------------------------------------------
private void btnKlik_KeyDown(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == 13)
{
MessageBox.Show("Gelukt");
}
else
{
MessageBox.Show("mislukt");
}
}
\--------------------------------------------------------------

Ik weet dat Char / Value 13 de Enter toets is.

Angelo NL / Global Cargo VTC


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 16:32
In Java is het in ieder geval zo dat je een keyboard actionhandler aan een Panel moet hangen, of aan iets anders, zodat die luisters naar je toetsenbord. Vergis ik me als ik zeg dat C# ook wel zoiets zal hebben? ;)

Als je de actionlistener geregistreerd hebt, dan wordt automatisch je methode aangeroepen van je actionlistener, bij een keypress / keydown / keyup / etc.

[ Voor 26% gewijzigd door Enfer op 11-09-2009 20:37 ]


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Heb je hier wat aan?

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

Verwijderd

Oké dit is wat je moet doen:

1. Op je form zet "Key Preview" op true.
2. Open de code view en voer de volgende code in:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);

            if (e.KeyCode == Keys.Return)
            {
                //Profit.
            }
            else
            {
                //Do something else..
            }
        }

        protected override bool ProcessDialogKey(Keys keyData)
        {
            if (keyData == Keys.Return)
            {
                return false;
            }

            return base.ProcessDialogKey(keyData);
        }


Ik hoop dat ik je hiermee geholpen heb ;)

edit 3: zo moet het werken :)

[ Voor 40% gewijzigd door Verwijderd op 11-09-2009 22:06 ]


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

En een kleine bonus aangezien ik vermoed dat de ts het wel nodigheeft ;)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op vrijdag 11 september 2009 @ 21:50:
Ik hoop dat ik je hiermee geholpen heb ;)
Nee, zo help je iemand nou niet echt. Door alles voor te kauwen en de kant-en-klare oplossing te posten kan TS nu met een copy/paste verder gaan zonder te beseffen (of te hebben geleerd te redeneren) waarom iets werkt zoals het werkt.
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
Hou daar een beetje rekening mee voortaan ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

angienl schreef op vrijdag 11 september 2009 @ 20:32:
private void btnKlik_KeyDown(object sender, KeyPressEventArgs e)
Wat doe je met een key event op een button? :?

Professionele website nodig?


  • smallboy
  • Registratie: September 2000
  • Laatst online: 16-09 20:58

smallboy

N/A

Zeker als het om een 'enter' knop gaat. Standaardgedrag is dat - als de button de focus heeft - en je op enter drukt, het 'Click' event wordt getriggerd.
Pagina: 1