Intercettare pressione tasti funzione su WebForm

giovedì 04 marzo 2010 - 18.19

Tirechan Profilo | Newbie

Ciao a tutti, premetto che sono nuovo di questo tipo di programmazione, quindi perdonate l'ignoranza. Ho anche provato a cercare su Google e nel forum ma ho trovato solo argomenti relativi a Windows Form e non ci sono saltato fuori.
Sto sviluppando una Web App in C#.Net e, in una pagina dove sono presenti 3 pulsanti (che mi rimandano ad altre pagine), avrei bisogno di intercettare i tasti F1, F2 ed F3 della tastiera per simulare la pressione dei pulsanti. In questo modo l'operatore può premere direttamente i pulsanti con il mouse oppure il relativo tasto funzione con la tastiera. Come si fa?

Ciao e grazie in anticipo
Davide

freeteo Profilo | Guru

Ciao,
chiaramente per farlo devi usare Javascript, io avevo usato un codice di questo tipo:

<script type="text/javascript"> document.onkeyup = KeyCheck; function KeyCheck(e) { var KeyID = (window.event) ? event.keyCode : e.keyCode; switch (KeyID) { case 37: //--- freccia sinistra ... break; case 39: //--- freccia destra ... break; } } </script>

che intercettava la pressione dei tasti freccia, non sono certo che funzioni anche con i tasti funzione, ma potresti provare.

ps: io questo codice l'ho messo nella pagina, appena dopo il form in modo che venga sempre elaborato al load dal browser...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Tirechan Profilo | Newbie

Ciao,
intanto grazie per la risposta..
Quindi questo codice lo devo mettere dopo il tag <form>?
Per sapere a che KeyID corrispondono i tasti funzione dove guardo? (ad es. freccia sx = 37)
All'interno del javascript, nel case, per raggiungere un elemento della form come devo fare? Ad esempio se dovessi impostare un textbox oppure richiamare il click event di un pulsante....

Ciao e grazie ancora..

freeteo Profilo | Guru

Ciao,
devi usare javascript per andare a prendere l'elemento con il metodo "document.getElementById(..)" e impostare le proprietà che ti interessano, siccome però il nome è dato poi a runtime da asp.net devi usare un trucchetto di questo tipo:
http://blogs.dotnethell.it/freeteo/codice-asp.net-dentro-javascript__7505.aspx

Pensandoci però, se la cosa che devi fare è complessa (come ad esempio simulare una pressione di un bottone etc...) senza diventare matto con "document.GetElementByID(..)", forse ti conviene dare un'occhiata a JQuery:
http://dotnetslackers.com/articles/ajax/Using-jQuery-with-ASP-NET.aspx
http://jquery.com/

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Tirechan Profilo | Newbie

Comunque sia diciamo che è questa la strada ideale quando occorre associare un tasto funzione ad un pulsante?
Ad esempio quando in determinate pagine troviamo pulsanti con caption "NEXT - F9" che effettuano la stessa operazione premendo il pulsante fisicamente oppure premendo il tasto F9 sulla tastiera...
Provo a documentarmi un po', nel frattempo grazie...

Ciao ciao

sankyu Profilo | Senior Member

mi sa che i tasti funzione non li puoi intercettare dato che sono usati dal browser! solo flash(a schermo pieno oppure onfocus), silverlight e java mi sa che possono nel senso che per ora non ho mai vsto Js con i tasti funzione

Tirechan Profilo | Newbie

Allora cosa potrei usare?
Consigli? Voi come fareste per implemetare un interfaccia del genere?
Ho visto che anche la property AccessKey non funziona sul browser di Windows Mobile 2003
Help me!!!!
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