首页 > 解决方案 > 计时器事件显示的表单无法正确呈现

问题描述

我在 C# windows 窗体中创建了应用程序,并且有一段时间后显示的 notificationForm,但没有我的标签和图片,它完全是空的。如果我手动显示此通知表单,一切都会完美。

private static void OnTimedEventZak(Object source, System.Timers.ElapsedEventArgs e)
{
    Mydb context = new Mydb ();
    var getReservation = context.column.Where(i => i.column_id== idForMethods).FirstOrDefault();
    if (getReservation.Status_id == 2)
    {
        Notification p = new Notification(getReservation.column_id,false);
        p.Show();
    }        
}

它呈现如下:

图片

标签: c#notifications

解决方案


您正在使用 System.Timers.Timer,因此您在不发送消息的线程(即不是“UI 线程”)上显示表单。

使用 System.Windows.Forms.Timer

另外,处理您的上下文,并考虑FirstOrDefault()可以返回null


推荐阅读