我有一个像这样的菜单:

在此处输入图片说明

我希望这样,如果光标位于ValorInsTextBox(Valor文本框)上,然后按Enter,应用程序将调用按钮InserirBtn_ClickAsync(Inserir Button),然后,光标将回到PosicaoInsTextBox(PosiçãoTextbox)。 我使用Key_Down制作了一些方法,但是发生了一些奇怪的事情。 看一下代码:

private void PosicaoInsTxtBox_KeyDown(Object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        InserirBtn_ClickAsync(sender, e);

        PosicaoInsTxtBox.Focus(FocusState.Programmatic);
    }
}

private void ValorInsTxtBox_KeyDown(Object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        InserirBtn_ClickAsync(sender, e);

        if (PosicaoInsTxtBox.IsEnabled)
        {
            PosicaoInsTxtBox.Focus(FocusState.Programmatic);
        }
        else
        {
            ValorInsTxtBox.Focus(FocusState.Programmatic);
        }
    }
}

当我调试代码时,当ValorInsTextBox成为焦点时,按Enter键,方法ValorInsTextBox_KeyDown启动,一切顺利。 当它到达线上时:

PosicaoInsTxtBox.Focus(FocusState.Programmatic);

它会执行方法PosicaoTextBox_KeyDown并开始执行它。 我不知道为什么! 有人可以帮助我吗?

===============>>#1 票数:1 已采纳

您可以在ValorInsTxtBox_KeyDown事件处理程序中将KeyRoutedEventArgs的Handled属性设置为true,以防止调用PosicaoInsTxtBox_KeyDown事件处理程序:

private void ValorInsTxtBox_KeyDown(Object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        InserirBtn_ClickAsync(sender, e);

        if (PosicaoInsTxtBox.IsEnabled)
        {
            PosicaoInsTxtBox.Focus(FocusState.Programmatic);
        }
        else
        {
            ValorInsTxtBox.Focus(FocusState.Programmatic);
        }
    }
    e.Handled = true;
}

并在PosicaoInsTxtBox_KeyDown事件处理程序中执行相同的操作,以防止您在Posicao“ TextBox中按Enter时再次调用它:

private void PosicaoInsTxtBox_KeyDown(Object sender, KeyRoutedEventArgs e)
{
    if (e.Key == Windows.System.VirtualKey.Enter)
    {
        InserirBtn_ClickAsync(sender, e);

        PosicaoInsTxtBox.Focus(FocusState.Programmatic);
    }
    e.Handled = true;
}

  ask by Sérgio Damasceno translate from so

未解决问题?本站智能推荐:

1回复

C#UWP-文本框挂在焦点上,包含大量文本

我正在构建一个通用的Windows 10应用程序,该应用程序使用户可以从文件系统中打开纯文本文件并将其显示在文本框中。 通常,这可以正常工作,但是现在我正在研究用户打开海量文件的可能性。 为了进行测试,我使用的文件长约11,000行。 FileIO在大约1秒钟的时间内将文件加载到字符串中,
2回复

UWP-在文本框未聚焦时显示文本框文本高亮显示

当文本框失去焦点时,如何防止文本框隐藏所选的文本突出显示? 以下行适用于WPF 但是UWP相当于什么呢?
1回复

C#xaml WPF文本框在键入时自动失去焦点

我在xaml中有一个文本框(好几个文本框),它们的行为不正确。 当我将焦点设置到文本框时(无论是否键入任何内容),一段时间后,该特定文本框都会自动失去焦点。 对于某些文本框,它发生得很快,而对于某些文本框,它发生得慢,但全部发生。 最近三天它杀死了我,但找不到任何东西。 它只是一个普通的
2回复

聚焦文本框并在窗口初始化后选择所有文本

当打开一个新窗口时,我要聚焦特定的文本框并在其中选择整个文本。 我在本教程的基础上进行了尝试: https : //blogs.msdn.microsoft.com/argumentnullexceptionblogpost/2013/04/12/a-simple-selectall-beha
5回复

选项卡上的文本框SelectAll但不是鼠标单击

所以假设我有一个带有几个文本框的WPF表单,如果你选中文本框并且它已经包含了一些内容,我想选择该框中的所有文本,这样输入就会删除该文本。 如果您在框中单击鼠标,则可能意味着您想要在某处更改字母,因此在这种情况下不要突出显示所有字母。 看起来很容易,但到目前为止,我找不到一个好的解决方案。
1回复

如何使用户控件中的文本框不关注负载?

我有一个XAML页面,在其中点击“添加”按钮后,会创建一个UserControl并将其添加到我的容器中。 此UserControl有一个Rectangle,一个TextBox和一些按钮。 我的问题是,在第一次单击“添加”按钮时,焦点被赋予了文本框。 反复单击“添加”按钮,将创建更多User
2回复

XAML UWP将背景放在自定义按钮上

在XAML UWP应用程序上,我拥有一个扩展Button的类。 我已经设置了背景ImageBrush。 我的问题是,当我的按钮获得焦点或发生鼠标悬停事件时,我的按钮上会出现一个带有黑色边框的灰色矩形。 我试过了 一击 许多解决方案,从更改前景到在各种事件( gotFocus
2回复

Keyboard.Focus在WPF中的文本框上不起作用

我正在敲打看起来像是一个简单的问题来修复wpf,但我还没有发现为什么我不能让我的应用程序按照我的计划行事。 当用户按下ctrl + f时,我的wpf应用程序中会弹出一个小搜索框。 我想要的只是插入符号在搜索框文本框内闪烁,准备好接受任何用户输入而无需用户点击它。 以下是文本框的xaml
1回复

在本机UWP中,如何为字符串中的特定字符应用颜色或如何在文本框控件中显示多色文本

我的要求是我想在文本框控件中显示一些字符串,并且我想为字符串中的特定字符应用颜色。 例如,在下图中,我的输入字符串是“我的标签”,并且我将文本颜色设置为“蓝色”。 现在,我需要在下图中以不同的颜色显示特定的字符或字符串,例如“我的”字符串。 请给我一个可能的建议,以达到我的要求。
1回复

WinRT,TextBox的焦点,奇怪的行为

在我的WinRT应用程序的一个视图中,我希望当TextBox失去焦点时显示BottomAppBar 。 我打了GotFocus和LostFocus与我可以手动更改事件IsOpen的财产BottomAppBar相应。 问题是,当BottomAppBar打开时,如果用户单击TextBox ,