c# - 我们不能在 PreviewKeyDown 事件中获取文本框的当前值吗?

标签 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
        { }
    }      

最佳答案

也许您的问题是您在 PreviewKeyDown 处询问,因此当它被调用时,框中仍然没有任何值。如果您想在框实际更改时被调用,您需要 Hook KeyDown 或更好的 TextChanged

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

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

关于c# - 我们不能在 PreviewKeyDown 事件中获取文本框的当前值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33993823/

相关文章:

c# - 为什么即使设置了 Effects = DragDropEffects.None 也允许放置?

c# - 使用 MVVM 时应该将 WPF 特定代码放在哪里?

c# - Regex.IsMatch() 无法识别转义序列?

c# - HttpModule、Response.Filter 和图像未显示

c# - 如何检索虚拟目录的物理路径

WPF 列调整大小性能问题

wpf - WPF 中的路由事件是否弱

wpf - 在 DataTemplate 中绑定(bind) CollectionViewSource

c# - 内存数据库不保存数据

c# - .NET 中预编译程序集的优点和缺点是什么?