0
請看我的代碼, 這將成爲一個無限循環,同時調用組合框的lostfocus事件 我需要從數據庫中的一些數據和用戶可以選擇數據只有形式列表與打字選項。WPF Combobox lostFocus事件成爲一個無限的lopp
mainwindow.xaml
<Grid>
<TextBox x:Name="txt1" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120" Margin="112,10,0,0"/>
<ComboBox x:Name="cmb" GotFocus="cmbgotfocus" LostKeyboardFocus="cmblost" KeyDown="cmbkeydown" IsEditable="True" HorizontalAlignment="Left" VerticalAlignment="Top" Width="238" Margin="112,50,0,0" />
</Grid>
類
private void cmbkeydown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return || e.Key == Key.Escape)
{
cmb.IsDropDownOpen = false;
}
else
{
cmb.IsDropDownOpen = true;
}
}
private void cmblost(object sender, RoutedEventArgs e)
{
if (cmb.SelectedIndex < 0 && cmb.Text!="")
{
MessageBox.Show("Please select a valid data from list only", "Warning");
cmb.Focus();
}
}
你有沒有試過看看調試工具會發生什麼? –
在lostfocus處理程序中調用cmb.Focus()可能不是一個好主意 – vkluge