在花了 90 分钟寻找这个简单问题的解决方案后,我不得不羞愧地发布一个问题。
我正在开发一个用户输入文本的 WPF 项目。我想在用户键入时检查输入,显示工具提示并理想地阻止不允许的字符。基本上是这个线程:
如何验证用户在 WinForms 文本框中输入的字符?或这个
private void NameTextbox_KeyDown(object sender, KeyEventArgs e)
{
e.???
}
我通过双击设计器中的 KeyDown-Property 字段在后面创建了这段代码(如果我在那里搞砸了,只需提及这一点)。
我无法访问 e.SupressKeyPress 属性。为什么?就 VS 提供的属性而言,我认为e是错误的类型或在错误的上下文中。
编辑1
private void NameTextbox_KeyDown(object sender, KeyEventArgs e)
{
var strKey = new KeyConverter().ConvertToString(e.Key);
if (!strKey.All(Char.IsLetter))
{
MessageBox.Show("Wrong input");
e.Handled = true;
}
}
感谢@rokkerboci,我能够构建出这样的作品。然而我认为它过于复杂。所以仍然欢迎改进:)
创建消息框时出现新错误,应用程序挂起,但未引发异常。