我有一个小问题,标题是用WatermarkPasswordBox说的。如果我使用普通的WPF密码盒,我就无法输入Enter键(值为private void TextBox_Password_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
}
}
private void TextBox_Password_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
}
}
private void TextBox_Password_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
}
}
private void TextBox_Password_PreviewKeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
}
}
),这很好。但是当我使用Extended WPF Toolkit中的WatermarkPasswordBox时,它会不断输入Enter值。
我试图以这种方式对输入密钥执行任何操作:
solve(args) {
var primeNumbers = [1];
for(var i=1; i<=args ;i++){
var isPrime = true;
for(var j=2; j<i; j++){
if(i%j === 0){
isPrime = false;
}
}
if(isPrime === true){
primeNumbers.push(i);
}
}
console.log(primeNumbers);
}
但它没有帮助..我真的想使用Extended WPF Toolkit的PasswordBox,但这非常烦人。
答案 0 :(得分:2)
通常不处理输入键的文本框本身;相反,如果表单包含标记为默认的按钮,则该按钮会截取当前对话框的回车键。如果表单上有这样的按钮,则不需要明确处理回车键。
但是如果你想要这样做,那么这样做的方法是处理PreviewKeyDown事件并将EventArgs的Handled属性设置为true:
private void WatermarkPasswordBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter) e.Handled = true;
}