Skip to content
Bruno Sonnino
Menu
  • Home
  • About
Menu

Trocando o Enter pelo Tab em WPF

Posted on 27 December 2007

Uma pergunta muito comum que vejo por aí é como trocar o Enter pelo Tab. Normalmente, deve-se manipular o evento de tecla pressionada, verificar se é um Enter e mudar o foco para o elemento seguinte na lista de tabulação. Em WPF, podemos criar um manipulador para o evento PreviewKeyDown da janela (no WPF, os eventos são propagados por toda a árvore de elementos, assim, os eventos de tecla obrigatoriamente passam pela janela, independente de onde tenham sido gerados), como o seguinte:

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
  if (e.Key == Key.Return)
  {
    FocusNavigationDirection focusDirection = FocusNavigationDirection.Next;
    TraversalRequest request = new TraversalRequest(focusDirection);
    UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;
    if (elementWithFocus != null)
      elementWithFocus.MoveFocus(request);
    e.Handled = true;
  }
}

Post navigation

Entrevista comigo no XAMLCast
Movendo Shapes com o mouse em WPF

4 thoughts on “Trocando o Enter pelo Tab em WPF”

  1. Diego says:
    28 November 2008 at 10:22

    Bruno,
    Tenho como definir essa operação para todos os Texbox da minha aplicação???

    Grato,

    Diego

    Reply
  2. bsonnino says:
    28 November 2008 at 10:51

    Não vejo por que não. Esta operação funciona em toda a janela. Se você quer pular os elementos que não sejam TextBoxes, pode colocar algo assim:

    while (elementWithFocus != null && elementWithFocus != TextBox)

    elementWithFocus.MoveFocus(request);

    e.Handled = true;

    Reply
  3. Diego says:
    28 November 2008 at 11:45

    Eu queria deixar como padrão para todas as telas, sem ter que usar o PreviewKeyDown em cada uma, existe um jeito de fazer isso???

    grato,

    Reply
  4. bsonnino says:
    28 November 2008 at 12:05

    Eu faria uma classe onde colocaria o código e derivaria as janelas onde quero este código desta nova janela.

    Outra maneira seria criar um UserControl sem nada onde você coloca este código e coloca seu UserControl na janela e o conteúdo dentro dela

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • November 2023
  • October 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • June 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • October 2020
  • September 2020
  • April 2020
  • March 2020
  • January 2020
  • November 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • June 2017
  • May 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • October 2015
  • August 2013
  • May 2013
  • February 2012
  • January 2012
  • April 2011
  • March 2011
  • December 2010
  • November 2009
  • June 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • July 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • Development
  • English
  • Português
  • Uncategorized
  • Windows

.NET .NET Core ADS Algorithms Animations asp.NET Authentication Backup C# Debugging Delphi Dependency Injection Desktop Bridge Desktop icons Electron JSON Linq MVVM NTFS Open Source OpenXML OzCode P/Invoke PowerShell PWA Sensors Silverlight sql server Surface Dial Testing Tools TypeScript UI Unit Testing UWP Visual Studio VS Code WebView2 Windows Windows 10 Windows Protection WPF XAML XML Zip

  • Entries RSS
  • Comments RSS
©2023 Bruno Sonnino | Design: Newspaperly WordPress Theme