C# 如何在计时器停止时从其他应用程序禁用按钮
我对C语言编程有点陌生。我想知道是否有一种方法可以让我的wpf按照我想要的方式运行 我正在为桌面应用程序创建计时器。我想让它做的是,如果它达到5分钟,编辑按钮将被禁用,留下的按钮只是为了保存 例如,当我在桌面上打开microsoft word应用程序时,我只有5分钟的时间访问它,如果我达到时间限制,我只能保存它,其他按钮将被禁用 这是我的代码片段C# 如何在计时器停止时从其他应用程序禁用按钮,c#,button,disabled-control,C#,Button,Disabled Control,我对C语言编程有点陌生。我想知道是否有一种方法可以让我的wpf按照我想要的方式运行 我正在为桌面应用程序创建计时器。我想让它做的是,如果它达到5分钟,编辑按钮将被禁用,留下的按钮只是为了保存 例如,当我在桌面上打开microsoft word应用程序时,我只有5分钟的时间访问它,如果我达到时间限制,我只能保存它,其他按钮将被禁用 这是我的代码片段 //-------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
ticker.DispatcherTimerInstance.Tick += (ev, EV) =>
{
TimeCount.Text = ticker.currentResult.ToString();
};
dp.AddValueChanged(TimeCount, (object a, EventArgs b) =>
{
if (TimeCount.Text == "00:00:10")
{
dt_TimeStart_PW.Stop();
}
if (TimeCount.Text == "00:00:10")
{
win2.ShowDialog();
}
if (TimeCount.Text == "00:05:00")
{
win3.ShowDialog();
//the buttons on the app should be disabled except for save and close
}
});
dt_TimeStart_PW = new DispatcherTimer();
dt_TimeStart_PW.Start();
dt_TimeStart_TC = new DispatcherTimer();
dt_TimeStart_TC.Start();
dt_TimeStart_PW.Tick += (a, b) =>
{
GetTaskNameWindows("Please wait...");
//GetTaskNameWindows("Task Completed");
};
dt_TimeStart_TC.Tick += (a, b) =>
{
GetTaskNameWindows("Task Completed");
};
多谢各位。我希望你能帮助我。只需使用此代码
按钮名。IsEnabled=False代码>在达到5分钟时禁用按钮。此处按钮名称是按钮的名称,当条件满足时,您可以随意禁用按钮。您应该使用Microsoft的反应式框架(NuGet“System.Responsive”)来帮助解决此问题
然后你可以这样做:
var subscription =
Observable
.Timer(TimeSpan.FromMinutes(5.0))
.ObserveOnDispatcher()
.Subscribe(_ => button.IsEnabled = false);
这就是您需要的全部代码
如果要在5分钟结束前停止计时器,只需执行subscription.Dispose()代码>这是什么语言?C#。很抱歉,我忘记输入语言。请不要使用TimeCount.Text==“00:05:00”
来确定您应该何时完成任务,因为无法保证计时器将在正确的时间启动以将文本设置为该时间。Windows不是实时操作系统。您需要设置一个时间戳并与之进行比较var then=DateTime.Now
然后测试then.AddMinutes(5.0)
。我要禁用的按钮是microsoft word应用程序上的按钮。可以吗?请看一下:[链接]()微软的反应式框架(NuGet“System.Reactive”)--这是什么?