[C# winforms] Enter afvangen in datagridTextBoxColumn

Pagina: 1
Acties:

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:56
Ik wil een druk op de enterknop afnagen in een cel van een datagrid. Hiervoor heb ik een eventhandler aan de dataGridTextBoxColumn gehangen:
C#:
1
this.dataGridTextBoxColumn12.TextBox.KeyUp += new System.Windows.Forms.KeyEventHandler(this.dataGridItem_KeyUp);
Het is een keyup event omdat volgens de help enters ed niet in de keypress afgevangen worden. De eventhandler ziet er zo uit:
C#:
1
2
3
4
5
rivate void dataGridItem_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if( e.KeyCode == Keys.Enter )
        MessageBox.Show( "AAA" );
}
Het vreemde is echter, dat als ik op welke knop dan ook in de betreffende kolom druk, het event niet getriggerd wordt. Een keyPress event wordt wel getriggerd, maar die kan ik dus niet gebruiken.Waarom wordt mijn event niet getriggerd?

Roomba E5 te koop


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Waarom gebruik je een KeyUp en geen KeyDown ?

[ Voor 14% gewijzigd door whoami op 08-12-2004 14:05 ]

https://fgheysels.github.io/


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:56
Geen idee. Maakt dat uit dan?
Edit: even geprobeerd, overige knoppen pakt ie nu wel, maar de enter nog steeds niet.
Edit2: vind net een hoop info in de help, ga even wat proberen...

[ Voor 83% gewijzigd door sig69 op 08-12-2004 14:11 ]

Roomba E5 te koop


  • Bartjuh
  • Registratie: Oktober 2001
  • Niet online

Bartjuh

Hej

en met de expressie : e.KeyChar == '\r' ?

Het verschil tussen KeyUp en KeyDown is dat KeyDown wordt getriggered direct als je de knup indrukt, KeyUp wordt pas getriggered als de toets weer helemaal boven is.

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:56
Ja dat weet ik.

Ik ben er nu achter waarom het event niet getriggerd wordt. Uit de help:

Certain keys, such as the TAB, RETURN, ESCAPE, and arrow keys are handled by controls automatically. In order to have these keys raise the KeyDown event, you must override the IsInputKey method in each control on your form. The code for the override of the IsInputKey would need to determine if one of the special keys is pressed and return a value of true.

Roomba E5 te koop


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01-2025

6K

is ook zo...

en wat Bartjuh zegt? heb je dat geprobeerd? want zo heb ik het voorheen ook gedaan e.Keychar ?

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:56
Lees nou even: het event wordt niet getriggerd als je op TAB, RETURN, ESCAPE of de pijltjestoesten drukt. Deze worden automatisch afgehandeld.

Roomba E5 te koop


  • Bartjuh
  • Registratie: Oktober 2001
  • Niet online

Bartjuh

Hej

sig69 schreef op woensdag 08 december 2004 @ 14:22:
Ja dat weet ik.

Ik ben er nu achter waarom het event niet getriggerd wordt. Uit de help:

Certain keys, such as the TAB, RETURN, ESCAPE, and arrow keys are handled by controls automatically. In order to have these keys raise the KeyDown event, you must override the IsInputKey method in each control on your form. The code for the override of the IsInputKey would need to determine if one of the special keys is pressed and return a value of true.
Dat wist ik ook nog niet :) bedankt :Y)

Maar wel vaag dat het met een KeyPress event wel werkt .. :?

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:56
Jij hebt het waarschijnlijk over een normale textbox. Dit is specifiek voor een dataGridTextBoxColumn. Als ik een keypress event maak voor het datagrid zelf, werkt e.KeyChar == '\r' ook wel.

[ Voor 9% gewijzigd door sig69 op 08-12-2004 15:31 ]

Roomba E5 te koop

Pagina: 1