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"); } }