如何根据字符列表阻止用户输入?

我有一个字符列表:
var l = new List<char>();
l.AddRange(Path.GetInvalidFileNameChars());
l.AddRange(Path.GetInvalidPathChars());
我想检测用户何时按下其中一个被阻止的字符并将
SupressKeyPress
设置为
true
。 我有
e.KeyCode
e.KeyData
e.KeyValue
,但它们都不对应于
?
。 我该如何验证呢?     
已邀请:
您可以通过将
Handled
值设置为true来抑制
KeyPress
var l = new List<char>();
l.AddRange(Path.GetInvalidFileNameChars());
l.AddRange(Path.GetInvalidPathChars());

this.KeyPress += (s, e) =>
{
    e.Handled = l.Any(x => x == e.KeyChar);
};
    
e.Handled = true;
似乎不起作用,至少不适合我。 使用KeyDown事件的属性:
e.SupressKeyPress;
由于KeyDown发生在KeyPress或KeyUp事件之前,我想要在另一个KeyDown事件中处理“过滤”键。 SupressKeyPress属性MSDN     

要回复问题请先登录注册