Где я могу найти ключевые события в LightSwitch? - PullRequest
2 голосов
/ 08 марта 2012

Я работаю над проектом в Lightswitch и пытаюсь обработать событие keyup на определенном экране

Я не смог найти его, где я могу найти эти события (например, KeyUp KeyDown LostFocus ext.)

и если они не поддерживаются, что мне делать, чтобы справиться с такой ситуацией?

1 Ответ

8 голосов
/ 09 марта 2012

Полагаю, вы имеете в виду элементы управления, а не реальный экран.Так, например, для обработки событий клавиатуры в текстовом поле, один из способов достижения этого, как в этом примере, где у меня есть текстовое поле «Адрес1», и я хочу изменить его текст всякий раз, когда пользователь вводит определенную букву:
1 - В активированном событии экрана вы можете получить доступ к нужному текстовому полю:

partial void CustomersListDetail_Activated()
{
    this.FindControl("Address1").ControlAvailable += AddressTextBoxAvailable;
}

2 - В доступном обработчике событий вы можете подключиться к нужному событию (вы можете иметь KeyUp, KeyDown,LostFocus и другие):

private void AddressTextBoxAvailable(object sender, ControlAvailableEventArgs e)
{
    ((System.Windows.Controls.TextBox) e.Control).KeyUp += AddressTextBoxKeyUp;
}

3 - В обработчике событий KeyUp вы можете выполнять свои манипуляции:

private void AddressTextBoxKeyUp(object sender, KeyEventArgs e)
{
    if (e.Key == Key.A)
    {
        ((System.Windows.Controls.TextBox) sender).Text = "You typed A";
    }
}
...