Ciao, ho fatto delle prove, e come avevo scritto prima ci sono problemini (è un pochetto troppo complicato perché dovresti andara a sostituire il controllo di editing al momento giusto........)
Lascio quello che avevo scritto prima come "storico delle cacchiate"......
mentre la soluzione giusto è: aggiungi semplicemente nel codice del form, esempio se la griglia si chiama dataGrid1:
private void dataGridView1_EditingControlShowing(
object sender,
DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress += new KeyPressEventHandler(Control_KeyPress);
}
void Control_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show("Test");
}
in pratica gestisci semplicemente l'evento EditingControlShowing, ovvero quando vai in modifica, e gli dici che al controllo che appare (visibilmente non appare nulla, ma è nel momento che puoi scrivere nella cella), gli gestisci l'evento keyPress
ciao e buon lavoro
___________________________________________________________________________________
risposta vecchia
___________________________________________________________________________________
quindi, se vai nel file form1.designer.cs, troverai "InitializeComponent" che ti costruisce la tua griglia.
ad esempio una colonna sara:
this.numeroTelefonicoDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
Vai a guardarti la classe DataGridViewTextBoxColumn, e il tuo nuovo controllo dovrà espandere questa classe (non il textbox come avevo detto prima).
a questo punto, fatta la tua nuova classe che espande quella di default (avrai aggiunto il codice necessario per gestire il keyPress), sostituisci la riga scritta prima con una che usa la tua classe.
e perdonami ancora per la confusione che ho fatto prima
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.