c# - 计时器事件显示的表单无法正确呈现
问题描述
我在 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();
}
}
它呈现如下:
解决方案
您正在使用 System.Timers.Timer,因此您在不发送消息的线程(即不是“UI 线程”)上显示表单。
使用 System.Windows.Forms.Timer。
另外,处理您的上下文,并考虑FirstOrDefault()
可以返回null
。
推荐阅读
- java - 如何在 kotlin hashmap 中添加双精度类型?
- mongodb - MongoDB elemMatch 和文本搜索
- jquery - 如何删除或防止重复值表.map jquery
- firebase - events_intraday 表何时迁移到 BigQuery 上的 events_ 数据集?
- laravel - Laravel 验证;数组字段的人名
- c# - 身份服务器 4 和 ADFS
- c++ - 负索引是否一定意味着未定义的行为
- python - 在 Python 中使用数据类方法定义属性
- go - 如何在golang的k8s集群dns中查找SRV记录
- machine-learning - 如何使用精度和召回值获得混淆矩阵和准确率?