gpt4 book ai didi

windows-phone-7 - Windows Phone 7处理退格键按下事件

转载 作者:行者123 更新时间:2023-12-04 18:14:45 28 4
gpt4 key购买 nike

我在XAML中有一个文本框:

<TextBox Text="blah" 
Name="blah"
LostFocus="blah_OnLostFocus"
KeyDown="blah_OnKeyDown"/>

.cs文件声明了以下事件:
    private void blah_OnKeyDown(object sender, KeyEventArgs e)
{
TextBox t = sender as TextBox;
int i = 0;
if(e.Key == Key.Delete)
i = 1;
}

当我按模拟器键盘上的Backspace键时,该事件将被忽略。如果我按任何其他按钮,则会触发它。另外,当我对KeyUp事件使用相同的事件主体时,退格键将触发它。

如何跟踪何时为KeyDown事件按下Backspace键?为什么按下Backspace键不会触发KeyDown事件?

谢谢你。

最佳答案

退格按钮由文本框控件在内部处理。控件将使用Backspace事件并删除字母,并且不会将事件冒泡到您的事件中。这是设计使然。您会注意到,如果文本框中没有字母,则事件冒泡。为了解决这个问题,您可以使用AddHandler处理事件。尝试这样做:

//Handle the mainpage loaded event and add the handler to the textbox
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
textBox1.AddHandler(TextBox.KeyDownEvent, new KeyEventHandler(blah_KeyDown), true);
}

然后将您的Key_Down事件处理程序更改为此:
private void blah_OnKeyDown(object sender, KeyEventArgs e)
{
TextBox t = sender as TextBox;
int i = 0;
if(e.Key == Key.Back)
i = 1;
}

那应该让文本框在内部处理该事件,而且还要调用您的OnKeyDown事件。

关于windows-phone-7 - Windows Phone 7处理退格键按下事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925890/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com