我正在尝试在 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
{ }
}
答案 0 :(得分:7)
也许你的问题是你在PreviewKeyDown
询问,所以当它被调用时,框中仍然没有值。如果您想在框实际更改时被调用,则需要挂钩KeyDown
或更好TextChanged
。
PreviewKeyDown
用于在实际应用之前检查更改的内容,这是一种验证。
修改的值存储在keyEventArgs
中,而不是文本框中。
答案 1 :(得分:0)
可以使用Text
控件的TextBox
属性随时读取 TextBox 的值:
var currentValue=textBox.Text;
要阅读输入的keys
键盘,您可以使用e.Key
的{{1}}:
KeyEventArgs
<强>更新强>
可以使用private void txtDoscountValue_PreviewKeyDown(object sender, KeyEventArgs e)
{
try
{
string input=e.Key;
var ee = txtDoscountValue.Text;
}
catch { }
}
类将KeyConverter
转换为字符串。您应该将程序集 System.Windows.Forms 的引用添加到WPF项目以使用Keys
类:
KeyConverter
}