「Enter キーを押したとき次のコントロールへフォーカスを移す」という動作を実現する場合、例えば TextBox なら
textBox.KeyDown += delegate (object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { UIElement element = sender as UIElement; if (element != null) { element.MoveFocus(new TraverasalRequest(FocusNavigationDirection.Next)); } } }
と書けばいい。同じ動作を ComboBox でやりたい場合は
comboBox.KeyDown += delegate (object sender, KeyEventArgs e) { if (e.Key == Keys.Enter) { UIElement element = sender as UIElement; if (element != null) { element.MoveFocus(new TraverasalRequest(FocusNavigationDirection.Next)); } } }
と書けばいいハズなんだけど、これだとフォーカスが移動しない…。でも Previous や Right や Left だとちゃんと移動するんだよなぁ。
「バグかな?」と思ってネットで検索しても、それらしい情報は見つからない><探し方が悪いのかなorz