输入Key = Tab键...不工作

时间:2018-02-23 20:18:02

标签: c# wpf telerik radgridview

我今天早上研究了如何修改RadGridView(在WPF中)的行为,以便将焦点从一个控件移动到下一个控件,就像Tab键一样...和许多其他示例我一样#&# 39;我看过,我想做同样的事情:只需输入(或返回)键即可模仿Tab键。但我的代码无效。

如果我在XAML中有以下代码:

            <telerik:GridViewDataColumn Name="MyColumn" CellStyleSelector="{DynamicResource MyColorStyle}" Width="64">
                <telerik:GridViewDataColumn.Header>
                    <TextBlock Text="My Column" TextAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" />
                </telerik:GridViewDataColumn.Header>
                <telerik:GridViewDataColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding MyNumber}" TextAlignment="Right"></TextBlock>
                    </DataTemplate>
                </telerik:GridViewDataColumn.CellTemplate>
                <telerik:GridViewColumn.CellEditTemplate>
                    <DataTemplate>
                        <TextBox Name="MyNumberTextBox" Text="{Binding MyNumber, Mode=TwoWay}" IsTabStop="True" TabIndex="27" PreviewKeyDown="MyNumberTextBox_PreviewKeyDown" MaxLength="10" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" />
                    </DataTemplate>
                </telerik:GridViewColumn.CellEditTemplate>
            </telerik:GridViewDataColumn>

我在代码隐藏中使用了这段代码:

private void MyNumberTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if ((e.Key == Key.Enter) || (e.Key == Key.Return))
    {
        e.Handled = true;
        (sender as TextBox).MoveFocus(new TraversalRequest(System.Windows.Input.FocusNavigationDirection.Next));
    }
}

焦点不会前进到RadGridView行右侧的下一列;它反过来回到屏幕的顶部(到下拉菜单控件)。我为我的列中的每个文本框明确设置了TabStop。

可以在这里使用一些帮助来确定我做得不好,或者我可能缺少什么。在此先感谢您的帮助。

0 个答案:

没有答案