我有一个字符列表:
var l = new List<char>();
l.AddRange(Path.GetInvalidFileNameChars());
l.AddRange(Path.GetInvalidPathChars());
我想检测用户何时按下其中一个被阻止的字符并将SupressKeyPress
设置为true
。
我有e.KeyCode
,e.KeyData
和e.KeyValue
,但例如,它们都不对应?
。
我该如何验证?
答案 0 :(得分:3)
您可以通过将KeyPress
值设置为true来禁止Handled
:
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);
};
答案 1 :(得分:0)
e.Handled = true;
似乎不起作用,至少不适合我。
使用KeyDown事件处理的属性:
e.SupressKeyPress;
由于KeyDown发生在KeyPress或KeyUp事件之前,我&#34;过滤&#34;我想在另外一个KeyDown事件中处理的密钥。