设置TextBox AccessText而不附带Label

时间:2016-05-09 14:45:27

标签: c# wpf textbox keyboard-shortcuts

我在usercontrol中有一系列没有附带标签的文本框。 我需要为用户提供一种方法,按Alt +(某些键)将焦点设置到每个文本框中。

如果我想使用内置的WPF“AccessText”方式,我需要在每个文本框旁边放一个Label,在快捷键前面指定一个带有'_'字符的内容,并指定每个Label的“Target”属性为其各自的Textbox。

不幸的是,在这种情况下,每个文本框都没有标签,也没有。

是否可以为文本框指定AccessText快捷键,而不使用Label?

1 个答案:

答案 0 :(得分:0)

你可以按下按键组合,然后将焦点放在TextBox上:

* XAML:

<UserControl Loaded="UserControl_Loaded">
    <Grid>
        <StackPanel>
            <TextBox Height="30" x:Name="txt1"/>
            <TextBox Height="30" x:Name="txt2"/>
        </StackPanel>
    </Grid>
</UserControl>

* CS

    public UserControl()
    {
        InitializeComponent();
    }

    private void KeyDownEvent(object sender, KeyEventArgs e)
    {
        bool x = Keyboard.IsKeyDown(Key.System);
        if (Keyboard.IsKeyDown(Key.System) && Keyboard.IsKeyDown(Key.B))// Alt+B
        {
            txt2.Focusable = true;
            txt2.Focus();
        }
    }

    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        var window = Window.GetWindow(this);
        window.KeyDown += KeyDownEvent;
        txt1.Focusable = true;
        txt1.Focus();
    }
}