Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-选项卡在文本框内工作-不用于选择其他ui元素_C#_Wpf_Xaml - Fatal编程技术网

C# WPF-选项卡在文本框内工作-不用于选择其他ui元素

C# WPF-选项卡在文本框内工作-不用于选择其他ui元素,c#,wpf,xaml,C#,Wpf,Xaml,我正在创建自定义日期文本框,我想要它的行为(在代码隐藏中这样做): 在焦点上,它将文本设置为当前日期时间,格式为dd.MM.yyyy,并选择“dd”部分。(t.SelectionStart=0,t.SelectionLength=2) 然后我想按tab键将选择更改为“MM”零件。(t.SelectionStart=3;t.SelectionLength=2;) [“t”是当前文本框] 我拥有的代码: private void DateTextBox_PreviewKeyUp(object

我正在创建自定义日期文本框,我想要它的行为(在代码隐藏中这样做):

在焦点上,它将文本设置为当前日期时间,格式为dd.MM.yyyy,并选择“dd”部分。(t.SelectionStart=0,t.SelectionLength=2)

然后我想按tab键将选择更改为“MM”零件。(t.SelectionStart=3;t.SelectionLength=2;)

[“t”是当前文本框]

我拥有的代码:

    private void DateTextBox_PreviewKeyUp(object sender, KeyEventArgs e)
    {
        TextBox t = sender as TextBox;
        if(e.Key == Key.Tab)
        {
            if(t.SelectionStart == 0)
            {
                t.SelectionStart = 3; t.SelectionLength = 2;
            } else if(t.SelectionStart == 3)
            {
                t.SelectionStart = 6; t.SelectionLength = 4;
            } else
            {
                t.SelectionStart = 0; t.SelectionLength = 2;
            }
            e.Handled = false;
        }
    }
尝试e.处理假与真。没有什么变化

现在它的行为类似于: Iam在上一个控件(也是文本框)上,按Tab键,焦点转到此文本框,另一个事件设置前两个字符的选择,再次按Tab键,焦点转到下一个元素


如何在焦点到达该文本框时强制选项卡仅在此文本框中工作?

好的,将PreviewKeyUp更改为PreviewKeyDown即可工作。 Tab按下操作在PreviewKeyUp事件触发之前触发UI以聚焦下一个uielement