2

在我的 wpf 应用程序中,我有一个事件的 startDate 和 endDate,我想实现一个弹出警报框,以便在 endDate 到来时自动显示警告消息(比如 endDate 前 5 天)。在屏幕截图中,当我单击ClientDeadlines(我的 wpf 中的 ItemTab 标题)时,会出现警报框。我怎样才能实现这个功能?任何样品都值得赞赏。提前致谢。在此处输入图像描述

4

2 回答 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 回答