我终于摆脱了所有错误信息,因为我试图找到控制并启用它。按钮不是从禁用状态切换到启用状态
在属性窗格中,我禁用了mainwindow上的按钮。
此代码成功运行,尽管令人讨厌,因为每秒我都会给我另一个msgbox来显示代码被触发。但它不启用按钮。我是C#的新手,所以对我来说看起来像阿拉伯语。在VB中这纯粹是:
btnMyButton.Enabled = True
这背后是我的代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
myTimer.Interval = 1000; // 1000 ms is one second
myTimer.Start();
}
public void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
DateTime now = DateTime.Now;
DateTime today3am = now.Date.AddHours(3);
if (DateTime.Today == today3am.Date && now >= today3am)
{
MessageBox.Show("Code is being triggered");
btnMyButton.IsEnabled = true;
}
}
}
解决:响应建议如下:(它的工作)
public void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
DateTime now = DateTime.Now;
DateTime today3am = now.Date.AddHours(3);
if (DateTime.Today == today3am.Date && now >= today3am)
{
MessageBox.Show("Button Should Enable");
this.Dispatcher.Invoke(() => {
btnMyButton.IsEnabled = true;
});
}
}
感谢您的信息。当我第一次尝试添加计时器时,我看到两个选项都是快速修复的。我首先执行了'System.Windows.Threading.DispatcherTimer',然后还为定时器类添加了using语句。我是一个完整的小白。我很感激你花时间向我解释。我一定会详细阅读这个主题。谢谢。 – DavidG