내 응용 프로그램에서 사용자는 ListBox
에 항목을 추가 할 수 있습니다. 사용자가 AutoCompleteBox
에서 Return Key을 한 번 더 선택하여 새 항목을 추가 할 수 있기를 바랍니다. Add
버튼의 True
버튼에 IsDefault
속성을 설정하면 충분하다고 생각했습니다. MainWindow를 코드처럼 보이는 방법항목을 선택한 후 AutoCompletBox에서 포커스를 이동하는 방법은 무엇입니까?
입니다 :
<ListBox Name="listBox1" />
<Button Name="button1" Content="Add" IsDefault="True" Click="button1_Click" />
<my:AutoCompleteBox Name="autoCompleteBox1"
IsTextCompletionEnabled="True"
PreviewKeyDown="autoCompleteBox1_PreviewKeyDown"/>
자체에 대한 AutoCompleteBox
유지 초점은, 그때는을 인 경우 확인하여 KeyDown
이벤트에 응답하려고하기 때문에 IsDefault
작동하지 않았다 설정 Return 키이 눌러졌고 버튼에 포커스를 설정하려고했습니다.
하지만 돌아 가기 키을 누르면 항목을 선택한 후 KeyDown
이벤트가 발생하지 않습니다. 그래서 마침내 PreviewKeyDown
이벤트에 가입이 수행
public partial class MainWindow : Window
{
ObservableCollection<string> myCollection = new ObservableCollection<string>();
public MainWindow()
{
InitializeComponent();
listBox1.ItemsSource = myCollection;
autoCompleteBox1.ItemsSource = new string[] { "item1", "item2", "item3", "item4", "item5" };
}
private void autoCompleteBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
button1.Focus();
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
if (autoCompleteBox1.SelectedItem != null)
myCollection.Add((string)autoCompleteBox1.SelectedItem);
}
}
을하지만 버튼이 포커스를 취득하지 않습니다. AutoCompleteBox
에서 포커스를 어떻게 옮길 수 있습니까?
KeyUp 이벤트를 사용해보십시오. – Paparazzi
트릭을 한 @Blam에게 감사드립니다. 답변으로 어떻게 표시합니까? – agugglez
답변으로 내 의견을 게시했습니다. 감사 – Paparazzi