我们不能在PreviewKeyDown事件中获得Text Box的当前值吗?

Sag*_*gar 3 c# wpf

我试图在PreviewKeyDown事件中读取文本框的当前值 但无法获取当前值.

这是我的代码,

    private void txtDoscountValue_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        try
        {
          if  (txtDoscountValue.Text == string.Empty)
              discountPercentage = 0;
          else
              discountPercentage = float.Parse(txtDoscountValue.Text);
              CalculateCart(cartItems, discountPercentage, 0);
        }
        catch
        { }
    }      
Run Code Online (Sandbox Code Playgroud)

jav*_*irs 7

也许你的问题是你在问PreviewKeyDown,所以当它被调用时,框中仍然没有值.如果你想在盒子实际发生变化时被调用,你需要挂钩KeyDown甚至更好TextChanged.

PreviewKeyDown 用于在实际应用之前检查更改的内容,这是一种验证.

修改的值存储在keyEventArgs文本框中,而不是文本框中.