gpt4 book ai didi

c# - 刷新窗口窗体,即使不是事件窗口

转载 作者:可可西里 更新时间:2023-11-01 10:00:12 25 4
gpt4 key购买 nike

我正在尝试一些非常基本的东西。

我的 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();

谢谢,

标记

最佳答案

标签将在阐述结束时自动刷新。

您可能想在详细说明过程中强制刷新以更新标签,您可以简单地使用 this.Refresh() 来做到这一点,因为我怀疑该方法位于表单类中。

但是,当您进行长时间的细化并且需要保持 UI 更新和 react (即不卡住)时,建议的方法是避免在 UI 线程上进行细化,而是使用 BackGroundWorker 将工作委托(delegate)给另一个线程。

Here's BackGroundWorker 用法的工作示例。

关于c# - 刷新窗口窗体,即使不是事件窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14476988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com