在我的 wpf 应用程序中,我有一个事件的 startDate 和 endDate,我想实现一个弹出警报框,以便在 endDate 到来时自动显示警告消息(比如 endDate 前 5 天)。在屏幕截图中,当我单击ClientDeadlines(我的 wpf 中的 ItemTab 标题)时,会出现警报框。我怎样才能实现这个功能?任何样品都值得赞赏。提前致谢。
问问题
3070 次
2 回答
1
在 WPF 中,您可以使用 System.Windows.Threading 中的 DispatcherTimer..
DispatcherTimer timer = new DispatcherTimer();
DateTime myDeadLine = new DateTime();
public void InitTimer()
{
// Checks every minute
timer.Interval = new TimeSpan(0, 1, 0);
timer.Tick += timer_Tick;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
if ((myDeadLine - DateTime.Now).TotalDays <= 5)
MessageBox.Show("Your Alert Message");
}
编辑: 因为您想在每次用户单击 ClientDeadLines 订阅 TabControl 中的SelectionChanged事件时显示警报消息。
<TabControl SelectionChanged="TabControl_SelectionChanged_1" HorizontalAlignment="Left" Height="100" Margin="46,90,0,0" VerticalAlignment="Top" Width="397">
<TabItem Name="Tab1" Header="Check1">
<Grid Background="#FFE5E5E5"/>
</TabItem>
<TabItem Name="ClientDeadLines" Header="Check2" Height="23" VerticalAlignment="Bottom">
<Grid Background="#FFE5E5E5"/>
</TabItem>
</TabControl>
并在后面使用此代码
private void TabControl_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
if (ClientDeadLines.IsSelected)
{
// Your code to check time
int a = 0;
}
}
}
于 2013-08-27T09:20:43.253 回答
1
然后你可以使用简单的 Timer 来运行定时检查,看看它是否需要弹出警报。
private void InitTimer()
{
private System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Interval = 60000; // Check each minute
timer.Tick += (o,e) => CheckForDeadlines();
timer.Start();
}
private void CheckForDeadlines()
{
if((DateTime.Now-MyDeadline).TotalDays <= 5)
MessageBox.Show("Alert alert! You have a deadline in 5 days");
}
于 2013-08-26T13:58:37.360 回答