gpt4 book ai didi

c# - 如何阻止鼠标多次单击下一个 Windows WPF 中的元素?

转载 作者:行者123 更新时间:2023-11-30 21:17:59 26 4
gpt4 key购买 nike

我在一个 wpf 项目中有多个窗口。在任何窗口中,我都放置了一个控件(例如按钮)。因为控件在所有窗口中的位置都是相同的。我为所有窗口中的控件定义了一个 MouseLeftButtonUp 事件。在控件上单击(鼠标左键向上),我创建并打开下一个窗口的对话框。例如第一个窗口:

Window2 win2 = new Window2 ();
win2.Owner = this;
win2.ShowDialog();

但是我的问题:

如果我双击或三次单击第一个窗口的按钮,由于所有窗口中的所有位置控件都是相同的,所有两个或三个窗口都以级联方式打开。我只想打开下一个窗口。

感谢您的回答

最佳答案

请参阅我上面的评论。您可能希望将此视为“设计使然”,而不是修复它。

如果您决定修复它,您可以实现一种去抖动形式。

  • 创建某种形式的所有窗口都可以看到的全局状态(例如应用程序对象或主窗口类中的字段)。
  • 在该全局状态下,保留最后一次成功/正确点击的时间。从 DateTime.MinValue(或任何名称)开始。
  • 单击时,获取当前时间 DateTime.Now
  • 如果当前时间与最后一次成功点击之间的时间太短(小于您的去抖动时间。可能是 TimeSpan.FromMilliseconds(500)),则不要创建新窗口
  • 如果时间跨度比你的debounce时间长,那么更新最后一次成功/正确的点击,然后才打开新窗口

关于c# - 如何阻止鼠标多次单击下一个 Windows WPF 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517915/

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