c# - 为什么禁用的按钮可以点击?

标签 c# wpf button mouseevent

本案例使用的是 C# WPF。我想在单击按钮后立即禁用它,以防止在短时间内连续单击两次。我在 OnClick_Event 中禁用了按钮,但仍然可以点击。

部分源码如下

private void Button_Click_UpdateBurndownChart(object sender, RoutedEventArgs e)
{
   if(threadNotWorking)
   {
      updateButton.IsEnabled = false;
      startWorkThread();
   }
}

private void startWorkThread()
{
     ... ...
    //after finish required process
    updateButton.IsEnabled = true;
}

有什么办法可以做到这一点吗?

最佳答案

您可能想使用调度程序,可能存在线程问题(回调函数在单独的线程上运行并尝试访问在另一个线程上运行的 ui)。尝试这个 。 .

updateButton.Dispatcher.BeginInvoke(
    new ThreadStart(() => updateButton.IsEnabled = false), 
    System.Windows.Threading.DispatcherPriority.Input, null);

代替

updateButton.IsEnabled = false;

关于c# - 为什么禁用的按钮可以点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13907996/

相关文章:

c# - 隐藏 WPF DataGrid 滚动条

android - ClassCastException:android.widget.Button

c# - 校验功能。将 C 转换为 C#

c# - 提交 ASP.NET 后重定向

c# - 修改列单元格中的文本并使其成为超链接,listView WPF C#

c# - System.Windows.Controls.Canvas 到 System.Windows.Controls.TextBox 的无效转换异常

c# - C#WPF动态创建控件组WPF

c# - 检查实例是否属于某个类型

android - 在 Android SDK 中执行点击按钮

javascript按钮onclick不会触发