Как определить, когда курсор переместится, тогда данные будут обновлены в WPF? - PullRequest
2 голосов
/ 12 апреля 2019

Допустим, у меня есть два текстовых поля с именем:

Price = _______
Discount = _______

У меня также есть ярлык с именем Total.

Я хочу, чтобы, когда я вводил какое-то значение в текстовое поле Price, а затем перемещал мышь и щелкал по следующему текстовому полю Discount, метка Total будет иметь значение от Pricetextbox.

В настоящее время у меня есть это:

, когда я нажимаю Enter или Tab на моей клавиатуре, он обновится:

private void TxtPrice_KeyDown(object sender, KeyEventArgs e)
{
    if ((e.Key == Key.Return) || (e.Key == Key.Tab))
    {
        try
        {
          //some code
        }
        catch (Exception ex)
        {
           //some code
        }
    }
}

Я хочу, чтобы данные обновлялись без необходимости нажимать Enter или Tab .

Я хочу, чтобы эти функции выполнялись с помощью кода ниже.Возможно ли это сделать?Если да, как бы это было?

Ответы [ 3 ]

4 голосов
/ 12 апреля 2019

У каждого TextBox есть событие LostFocus, которое срабатывает при потере фокуса мышью или клавиатурой.

Тогда в вашей TextBox_LostFocus() -функции вы делаете что-то вроде

Total.Content = Price.Text;

для заполнения текущей цены.


Может реализовывать некоторые функции безопасности для проверки, является ли сумма в TextBox значения double или целым числом.

0 голосов
/ 12 апреля 2019

Вы можете использовать GotFocus -Event на Discount TextBox, например:

<TextBox x:Name="Discount" GotFocus="Discount_GotFocus"></TextBox>

и в коде:

private void Discount_GotFocus(object sender, RoutedEventArgs e)
{
    //Do something
}
0 голосов
/ 12 апреля 2019

Я думаю, вы можете использовать TextChanged -Событие для этого

private void TxtPrice_TextChanged(object sender, EventArgs e)
{
    TotalLabel.Text = TxtPrice.Text;
}



private void TxtDiscount_TextChanged(object sender, EventArgs e)
{
    //Logic for discount 
    //And update TotalLabel
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...