我終於擺脫了所有錯誤信息,因爲我試圖找到控制並啓用它。按鈕不是從禁用狀態切換到啓用狀態
在屬性窗格中,我禁用了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