如何检测光标何时移动,然后在WPF中更新数据?

时间:2019-04-12 05:56:19

标签: c# wpf

假设我有两个名为:

的文本框

Price = _______
Discount = _______

我还有一个名为Total的标签。

我想要的是,当我在Price文本框中键入一些值,然后移动鼠标并单击下一个文本框Discount时,Total标签将具有Price文本框中的值。

目前我有这个

当我在键盘上单击 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 个答案:

答案 0 :(得分:4)

每个TextBox都有一个Promise<any> 事件,该事件是由于鼠标或键盘失去焦点而触发的。

然后在您的LostFocus函数中执行类似的操作

TextBox_LostFocus()

填写当前价格。


可以实现一些安全功能,以检查价格TextBox中的金额是双精度还是整数。

答案 1 :(得分:0)

我认为您可以为此使用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
}

答案 2 :(得分:-1)

您可以在Discount TextBox上使用GotFocus-Event 像这样:

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

以及背后的代码:

private void Discount_GotFocus(object sender, RoutedEventArgs e)
{
    //Do something
}