2015-05-11 7 views
5

Ciao a tutti voglio chiave utilizzata scelta rapida (con il tasto destro e sinistro) in WPF e TabControl alla navigazione tra TabItem ho impostato il codice in Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)come navigare tra TabItem con destra e sinistra chiave in WPF

in questo modo:

switch (e.Key) 
      { 
       case Key.Right: 
        if (tbControl.TabIndex == 0) 
         tbControl.TabIndex = 1; 
        break; 

       case Key.Left: 
        if (tbControl.TabIndex == 0) 
         tbControl.TabIndex = 1; 
        break; 
      } 

ma non è nulla voglio la navigazione tra TabItem con sinistra e destra chiave grazie

+0

Il vostro metodo di ottenere chiamato? Metti un punto di interruzione e fai il debug. – nvoigt

+1

Immagino che tu voglia catturare un "global keyhook" .. – User2012384

+0

@nvoigt si ho usato breakpoint ma non ho rilevato keydown !!! – Faraz

risposta

4

si utilizza TabControl.TabIndex quando si dovrebbe utilizzare TabControl.SelectedIndex, in questo modo:

private void Window_KeyDown(object sender, KeyEventArgs e) 
{ 
    switch (e.Key) 
    { 
     case Key.Right: 
      if (tbControl.SelectedIndex == 0) 
       tbControl.SelectedIndex = 1; 
      break; 
     case Key.Left: 
      if (tbControl.SelectedIndex == 1) 
       tbControl.SelectedIndex = 0; 
      break; 
    } 
} 

TabIndex è comune a tutti i controlli, e rappresenta l'ordine in cui i controlli sono concentrati quando l'utente preme il tasto diTab. SelectedIndex è specifico per i controlli del selettore (ad esempio TabControl, ListBox, ComboBox, ecc.) E rappresenta l'indice della voce attualmente selezionata in detto controllo.

Inoltre, se si voleva questo per lavorare con più di due schede, vorrei cambiare i tuoi case dichiarazioni a qualcosa di più simile a questo:

case Key.Right: 
    if (tbControl.SelectedIndex < tbControl.Items.Count - 1) 
     tbControl.SelectedIndex++; 
    break; 

case Key.Left: 
    if (tbControl.SelectedIndex > 0) 
     tbControl.SelectedIndex--; 
    break; 
Problemi correlati