2011-01-07 8 views
8

Mi piacerebbe creare scorciatoie da tastiera per alcuni controlli nella mia applicazione Windows Form.Come è possibile creare collegamenti ad Alt in un'applicazione Windows Form?

Esempio:

Screenshot of XYZ

noti l'sottolineata, F E V P B.

ho un'etichetta e un controllo casella di testo. Mi piacerebbe associare quella scelta rapida da tastiera Alt all'etichetta e alla casella di testo. Quindi, se qualcuno preme Alt + B, l'attenzione viene data alla casella di testo associata. C'è un modo per creare questa associazione?

risposta

11

Quando l'etichetta riceve la messa a fuoco premendo il relativo tasto di scelta rapida (impostato utilizzando &), inoltra lo stato attivo al controllo successivo nell'ordine di tabulazione, poiché le etichette non sono modificabili. È necessario che la casella di testo sia il prossimo controllo nell'ordine di tabulazione.

Per visualizzare e correggere l'ordine di tabulazione del modulo, utilizzare il comando Visualizza + Tabulazione nell'IDE. L'utilizzo di TabPages o altri contenitori aggiunge un livello di nidificazione all'ordine di tabulazione (ad esempio, 1.1, 1.2 anziché solo 1 e 2), ma se l'etichetta e la casella di testo si trovano nello stesso contenitore, non dovrebbe essere troppo difficile da impostare correttamente.

5

Digitare &File o &Edit e si otterrà la sottolineatura. Ciò collegherà automaticamente le lettere sottolineate con la parola chiave Alt per collegamento.

MODIFICA. La domanda è stata modificata, quindi mi piacerebbe tenere il passo con la mia risposta. Ti piacerebbe prendere qualche combinazione di tasti (Alt + F) e mettere a fuoco la casella di testo.

È possibile provare questa soluzione utilizzando l'evento KeyDown del modulo principale.

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Alt && e.KeyCode == Keys.F) 
     { 
      this.textBox1.Focus(); 
     } 
    } 

per raggiungere questo obiettivo, è necessario impostare in aggiunta KeyPreview proprietà del modulo per true.

+0

Questo non sembra funzionare. Sto usando un controllo TabPage e voglio che la F sia sottolineata in "Font". La modifica della proprietà .Text della tagPage1 non lo sottolinea. –

+0

Bene, l'immagine che hai fornito mostra una striscia di menu. Si desidera una tabpage denominata Font (con F sottolineata) e dopo aver premuto 'Alt + F' si desidera visualizzare la tabpage. Ho ragione? – nan

+0

Sì, sembra che la e commerciale non funzioni su TabPages. –

0
this.KeyDown += new KeyEventHandler(Form1_KeyDown); 

void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
if (e.Alt && e.KeyCode == Keys.W) 
{ 
    btnShowConstructionCdFun(); 
} 
} 
Problemi correlati