Tasto funzione datagridview

mercoledì 14 marzo 2012 - 10.37
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2008

gianko72 Profilo | Newbie

Salve a tutti, prima di scrivere il mio primo post voglio salutare a tutti, che è cosa buona e giusta!

Volevo chiedere un aiuto. E' da poco che mi sono cimentato con il C# e diciamo che da vecchio programmatore VB6 non mi posso lamentare. Solo che ora sto impazzendo con una cosa che per me era scontata, ma così non è.

Ho una DataGridView con degli elementi, e vorrei fare che alla pressione del tasto funzione "F6" su una riga/cella mi aprisse una form.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Purtroppo non funziona, qualcuno mi può aiutare!!

PS : L'evento deve scattare quando sono sulla cella e non quando modifica. Quindi credo che il problema del mio codice sia quello, ma non so come uscirne.

Grazie

jackk87 Profilo | Junior Member

>Salve a tutti, prima di scrivere il mio primo post voglio salutare
>a tutti, che è cosa buona e giusta!
>
>Volevo chiedere un aiuto. E' da poco che mi sono cimentato con
>il C# e diciamo che da vecchio programmatore VB6 non mi posso
>lamentare. Solo che ora sto impazzendo con una cosa che per me
>era scontata, ma così non è.
>
>Ho una DataGridView con degli elementi, e vorrei fare che alla
>pressione del tasto funzione "F6" su una riga/cella mi aprisse
>una form.
>
>
>private void dataGridView1_EditingControlShowing(object sender,
>DataGridViewEditingControlShowingEventArgs e)
> {
>TextBox tb = (dataGridView1.EditingControl as TextBox);
> if (tb == null)
> {
>System.Diagnostics.Debugger.Break(); //you changed it to a non
>TextBox control. Add more support
> return;
> }
> editingBox = tb;
> tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);
> tb.TextChanged += new EventHandler(tb_TextChanged);
> }
>
>void tb_KeyPress(object sender, KeyPressEventArgs e)
> {
> if (!char.IsNumber(e.KeyChar) == Tasto F6)
> Visualizza Form;
> }
>
>
>Purtroppo non funziona, qualcuno mi può aiutare!!
>
>PS : L'evento deve scattare quando sono sulla cella e non quando
>modifica. Quindi credo che il problema del mio codice sia quello,
>ma non so come uscirne.

Ciao io utilizzerei semplicemente l'evento keydown gestendolo in questo modo:
private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F6) { if (dataGridView1.CurrentCell.ColumnIndex == 1) { Form2 Finestra = new Form2(); Finestra.Show(); } } }

dove al posto di 1 devi mettere la colonna che ti interessa pensado che la prima ha l'indice 0, quindi se è la terza colonna devi mettere 2

Spero di essere stato chiaro

>
>Grazie

Prego

gianko72 Profilo | Newbie

!!!!!! MERAVIGLIA !!!!!!!

Ed io che volevo far partire lo shuttle!!!

Grazie mille, sei stato davvero gentile. Non sapevo come uscirne!!!

Alla prossima

jackk87 Profilo | Junior Member

>!!!!!! MERAVIGLIA !!!!!!!
>
>Ed io che volevo far partire lo shuttle!!!
>
>Grazie mille, sei stato davvero gentile. Non sapevo come uscirne!!!
>
>Alla prossima
Di niente, accetta la risposta così si chiude come risolto
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5