我正在尝试一些非常基本的东西。刷新窗体,即使不是活动窗口
我在我的Windows窗体上有3个标签,我想从数据库中的3个不同的查询中填充,还要显示用户正在发生的事情,我想在数据可用时显示每个标签来自相应的查询。
要做到这一点,我可以使用:
Form.ActiveForm.Refresh();
然而,如果用户点击桌面上的任何其他窗口,该命令将失败,并“对象未设置”错误。
有什么办法可以刷新窗体上的标签,即使表单窗口不是活动窗口?
// Breach within next hour
DataTable tbBreach = (get info from database)
tbBreach.DefaultView.Sort = "Assignee ASC";
dgBreach.DataSource = tbBreach;
lbBreach2.Text = tbBreach.Rows.Count.ToString();
Form.ActiveForm.Refresh(); //Would like to update this form field now, and show it on the form
// Breach within next 24 hour
DataTable tbBreach24 = (get info from database)
tbBreach24.DefaultView.Sort = "Assignee ASC";
dgBreach24.DataSource = tbBreach24;
lbBreach24.Text = tbBreach24.Rows.Count.ToString();
Form.ActiveForm.Refresh();
谢谢
马克
原则上,不需要刷新,因为只要设置Text属性,标签就会自动刷新。您是否尝试删除刷新行? – digEmAll
嗨@digEmAll - 是的 - 如果我删除它们,标签似乎不会更新,直到函数结束(上面的是当有人点击“更新数字”按钮时执行),就好像更新表单(或者至少刷新它)根本没有完成,直到函数完成 - 这就是为什么我认为我可以在每个标签之后添加Refresh(),但是这会导致错误,如果用户没有窗口,窗体是on,in focus。非常感谢。 – Mark