C# 选择项目后如何从自动完成框中移动焦点?
在我的应用程序中,用户可以将项目添加到C# 选择项目后如何从自动完成框中移动焦点?,c#,.net,wpf,wpftoolkit,C#,.net,Wpf,Wpftoolkit,在我的应用程序中,用户可以将项目添加到列表框。我希望用户能够在从AutoCompleteBox中选择一个新项目后,通过再次按下Return键来添加该项目。我认为在Add按钮上将IsDefault属性设置为True就足够了 这是主窗口代码的外观: <ListBox Name="listBox1" /> <Button Name="button1" Content="Add" IsDefault="True" Click="button1_Click" /> <my
列表框
。我希望用户能够在从AutoCompleteBox
中选择一个新项目后,通过再次按下Return键来添加该项目。我认为在Add
按钮上将IsDefault
属性设置为True
就足够了
这是主窗口代码的外观:
<ListBox Name="listBox1" />
<Button Name="button1" Content="Add" IsDefault="True" Click="button1_Click" />
<my:AutoCompleteBox Name="autoCompleteBox1"
IsTextCompletionEnabled="True"
PreviewKeyDown="autoCompleteBox1_PreviewKeyDown"/>
但是这个按钮没有获得焦点。如何将焦点从
自动完成框中移开?使用KeyUp事件。在改变焦点的周期中,按下键太早了。谢谢@Blam的帮助。如何标记为答案?将我的评论作为答案发布。谢谢
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);
}
}