private void DatePicker_PreviewKeyDown(object sender, KeyEventArgs e) { TraversalRequest vector = null; switch (e.Key) { case Key.Enter: vector = new TraversalRequest(FocusNavigationDirection.Next); break; case Key.Down: vector = new TraversalRequest(FocusNavigationDirection.Next); break; case Key.Up: vector = new TraversalRequest(FocusNavigationDirection.Previous); break; //case Key.Right: // vector = new TraversalRequest(FocusNavigationDirection.Next); // break; //case Key.Left: // vector = new TraversalRequest(FocusNavigationDirection.Previous); // break; } FocusControl.SetFocusWithOrder(vector); }
private void Combobox_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { FocusControl.SetFocusWithOrder(new TraversalRequest(FocusNavigationDirection.Next)); UIElement element = Keyboard.FocusedElement as UIElement; e.Handled = true; } }
/// <summary> /// Enter、Tab、矢印キーによるフォーカス移動 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MaskedTextBox_KeyDown(object sender, KeyEventArgs e) { TraversalRequest vector = null; switch (e.Key) { case Key.Enter: if (cAcceptsReturn == true) { // 改行許可の場合はフォーカス移動しない return; } vector = new TraversalRequest(FocusNavigationDirection.Next); break; case Key.Down: vector = new TraversalRequest(FocusNavigationDirection.Next); break; case Key.Up: vector = new TraversalRequest(FocusNavigationDirection.Previous); break; //左右の矢印キーではフィールドを移動しない //case Key.Right: // if (MaskedTextBox.SelectionStart < MaskedTextBox.Text.Length) // { // return; // } // vector = new TraversalRequest(FocusNavigationDirection.Next); // break; //case Key.Left: // if (MaskedTextBox.SelectionLength > 0 || MaskedTextBox.SelectionStart > 0) // { // return; // } // vector = new TraversalRequest(FocusNavigationDirection.Previous); // break; } if (vector != null) { FocusControl.SetFocusWithOrder(vector); UIElement element = Keyboard.FocusedElement as UIElement; if (element is Button || element is ComboBox) { e.Handled = true; } } }
/// <summary> /// フォーカス移動 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cPasswordBox_KeyDown(object sender, KeyEventArgs e) { TraversalRequest vector = null; switch (e.Key) { case Key.Enter: vector = new TraversalRequest(FocusNavigationDirection.Next); break; case Key.Down: vector = new TraversalRequest(FocusNavigationDirection.Next); break; case Key.Up: vector = new TraversalRequest(FocusNavigationDirection.Previous); break; } if (vector != null) { e.Handled = true; FocusControl.SetFocusWithOrder(vector); } }