首先,这可能是先前问题的重复,但这些答案都不起作用.
对于许多例子,我甚至没有得到列出的正确程序.
我有一个TextBox和一个ListBox.我想在文本框中输入一封电子邮件,然后当我按下该Space键时,我需要将电子邮件添加到列表框中,然后清除文本框.
正如标题所示,我没有运气绑定空格键.
我试过了:
private void txtEmailAddr_KeyDown(object sender, KeyEventArgs e)
{
KeyEventArgs ke = e;
if (ke != null && ke.Key == Key.Space)
{
ke.Handled = false;
}
if (ke.Key == Key.Space)
{
lstEmails.Items.Add(txtEmail.Text);
}
}
Run Code Online (Sandbox Code Playgroud)
和
private void txtEmailAddr_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Space)
{
lstEmails.Items.Add(txtEmail.Text);
}
}
Run Code Online (Sandbox Code Playgroud)
请有人帮忙.
而不是KeyDown事件钩住PreviewKeyDown您的文本框的事件 -
<TextBox PreviewKeyDown="txtEmailAddr_KeyDown"/>
Run Code Online (Sandbox Code Playgroud)
来自MSDN文档 -
某些控件通常会忽略某些按键,例如TAB,RETURN,ESC和箭头键,因为它们不被视为输入键按下.例如,默认情况下,Button控件忽略箭头键.按箭头键通常会使焦点移动到上一个或下一个控件.箭头键被认为是导航键,按下这些键通常不会引发Button的KeyDown事件.但是,按下Button的箭头键会引发PreviewKeyDown事件.通过处理Button的PreviewKeyDown事件并将IsInputKey属性设置为true,可以在按下箭头键时引发KeyDown事件.但是,如果您处理箭头键,焦点将不再移动到上一个或下一个控件.
| 归档时间: |
|
| 查看次数: |
8664 次 |
| 最近记录: |