Non c'è una funzione che io sappia che mapperà un carattere a un codice tasto virtuale. Tuttavia, è possibile utilizzare la seguente tabella per iniziare a costruire tale mappatura.
http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx.
Nota che è necessario conoscere la tastiera, guardando la chiave che si cita '\' questa è la chiave virtuale VK_OEM_5 che per le tastiere degli Stati Uniti è '\' se non è spostata e '|' se spostato, quindi la funzione dovrà conoscere anche la tastiera utilizzata.
Ovviamente, se si desidera mappare da un codice tasto virtuale a un carattere, è possibile utilizzare interop per chiamare la funzione MapVirtualKeyEx.
Aggiornamento Sulla base del tuo commento questo ti darà quello che vuoi.
[DllImport("user32.dll")]
static extern int MapVirtualKey(int uCode, uint uMapType);
const uint MAPVK_VK_TO_CHAR = 0x02;
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
int key = MapVirtualKey((int)e.KeyCode, MAPVK_VK_TO_CHAR);
if (key == (int)'\\')
{
}
}
fonte
2010-05-24 17:24:59
Hai mai risolto questo problema con successo? Hai ancora bisogno di aiuto con questo? – jcolebrand
Hai visto questa risposta? http://stackoverflow.com/questions/318777/c-how-to-translate-virtual-keycode-to-char – jcolebrand
Sì. Ho bisogno di convertire da char a int. E ho bisogno di una soluzione indipendente dalla piattaforma. Senza WM_Messages ... –