コントロールを見つけて有効にする方法を試みた結果、すべてのエラーメッセージが消えてしまいました。ボタンが無効から有効に切り替わりません
プロパティペインでメインウィンドウのボタンを無効にしました。
このコードは1秒おきにコードが実行されていることを示す別の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;
}
}
}
:レスポンスはこれを示唆した:(ITが働いて)
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'を実行してから、timerクラスのusingステートメントを追加しました。私は完全なnoob笑です。私はあなたにそれを私に説明する時間を割いていただきありがとうございます。私はこのトピックについてもっと詳しく読むことになります。ありがとう。 – DavidG