je une grille qui contient comme peu TextBoxes ci-dessous les uns des autres:Problème avec l'événement de tir KeyDown sur TextBox quand il est « sauter » à une zone de texte WPF Grille
en appuyant sur Entrée, je dois sauter de txt1 à txt2 de txt2 à txt3 et ainsi de suite, et je l'ai résolu comme ceci:
private void Grid_PreviewKeyDown_1(object sender, KeyEventArgs e)
{
try
{
if (e.Key == Key.Enter)
{
UIElement element = e.Source as UIElement;
element.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
//e.Handled = true;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
et ma question est ici, sur chacune des boîtes de txt en appuyant sur ENTRER je calculer quelque chose d'une autre txtBoxes, et quand J'appuie sur enter sur txt1 ça va sauter sur txt2 et imme diatelly appeler événement txt2_KeyDown
, que je veux éviter .. Je veux appeler txt2_KeyDown
événement quand je suis debout « » sur txt2 et quand j'appuyez sur Entrée ..
-à-dire:
private void txt2_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
try
{
CalculateSomethingFromOtherTextBoxes();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Ce qui précède est être viré quand je suis 'debout' sur txt1 et quand je veux sauter à txt2 en appuyant sur Entrée, comment puis-je simplement 'sauter' sans appeler l'événement txt2 KeyDown Si je n'ai pas appuyé sur Enter alors que je suis vraiment 'debout' sur 'txt2 '.
Merci les gars, Vive
Peut-être vous peut créer une nouvelle variable d'aide? Je veux dire, si vous mettez le focus sur suivant, définissez cette variable sur true. Dans txt2 keydown check, si c'est vrai, mettez cette variable à false et mettez aussi return. Je ne sais pas pour l'instant d'autres solutions – Niewidzialny