2017-05-30 52 views
-1

我在编程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"); 
}; 

谢谢。我希望你能帮助我。

+0

这是什么语言? – WhatsThePoint

+0

C#。对不起,我忘了输入语言。 –

+0

请不要使用TimeCount.Text ==“00:05:00”来确定你应该完成一项任务,因为不能保证计时器会在正确的时间触发设置文本。 Windows不是实时操作系统。你需要设置时间戳并与之进行比较。 'var then = DateTime.Now;'然后测试'then.AddMinutes(5.0) Enigmativity

回答

0

只需使用此代码buttonName.IsEnabled=False;可以在达到5分钟时禁用按钮。这里的按钮名称是按钮的名称,当条件满足时,您可以根据需要禁用按钮。

+0

我想禁用的按钮是Microsoft Word应用程序上的按钮。可以做到吗? –

+0

请仔细阅读以下内容:[链接](https://stackoverflow.com/questions/13074554/disable-the-save-as-button-in-word-2010) –

0

您应该看看是否使用Microsoft的Reactive Framework(NuGet“System.Reactive”)来解决这个问题。

然后,你可以这样做:

var subscription = 
    Observable 
     .Timer(TimeSpan.FromMinutes(5.0)) 
     .ObserveOnDispatcher() 
     .Subscribe(_ => button.IsEnabled = false); 

这就是你需要的全部代码。

如果您想在5分钟之前停止定时器,只需执行subscription.Dispose();即可。

+0

微软的Reactive Framework(NuGet“System.Reactive”) - 这是什么? –

+0

看看这里:https://www.nuget.org/packages/System.Reactive/ – Enigmativity

相关问题