KeyUp事件使用“mahapps.metro”加倍

完整项目: https : //uploadfiles.io/wz8ji

关注代码:

代码C#:

public partial class MainWindow : MetroWindow { public MainWindow() { InitializeComponent(); } private void Textbox_KeyUp(object sender, KeyEventArgs e) { if (textbox.Text != string.Empty) { this.ShowMessageAsync("This is the title", "Some message"); } } } 

代码xaml:

               

在我的文本框中,当我快速擦除并键入时,事件被复制。 当我删除并正常输入“1”时,一切都很好。问题是我删除并输入任何非常快的字符。 当我快速执行此操作时,事件将重复。

我也用这个: http : //mahapps.com/

我创建了另一个没有使用“mahapps”的项目,它工作正常。

以下是它的发生方式:

退格键并快速释放+ 1键。

在此处输入图像描述

任何方案?

好吧,我已经将您的代码提交给了不同的测试,并且该方法没有重复…

 int i = 0; private void textBox1_KeyUp(object sender, KeyEventArgs e) { if(((TextBox)sender).Text != string.Empty) { System.Diagnostics.Debug.WriteLine("Hello " + ++i); } } 

validation另一个活动控件没有关联的键盘事件,这可能是问题所在。

您的代码正常运行

我已经测试了你的代码,它运行良好

正如你在聊天中告诉我的那样,你快速按退格键+ 1,好吧,错误是你的代码只要TextBox不为空就检测到任何键的脉动,所以,你必须做的就是限制使用Back

 private void Textbox_KeyUp(object sender, KeyEventArgs e) { if (textbox.Text != string.Empty && e.Key != Key.Back) { this.ShowMessageAsync("This is the title", "Some message"); } }