winForm重新加载无法正常工作

时间:2011-05-02 10:12:01

标签: c# winforms

我在C#中有一个全屏用户登录窗口应用程序,在form_load上它从数据库中获取数据并在表单中显示。当有任何数据库异常或服务器不可用时,我已经显示了重试按钮和错误消息。当用户单击重试按钮时,将再次调用表单加载事件,如

private void btnRetry_Click(object sender, EventArgs e)
        {
            Form1_Load(sender, e);
        }

但有时负载事件没有被正确调用,即一半的数据只是加载休息的数据将不会显示但是所有的数据都是从数据库中获取的,那时也没有异常发生

但这并不总是发生,它发生的时间很少见

我试过了

private void btnRetry_Click(object send, EventArgs e)
        {
            base.OnLoad(e);
        }

然后也是相同的结果,然后我累了提供5秒延迟没有变化。

 System.Threading.Thread.Sleep(5000); // 5 seconds delay  

我的目标是在用户点击重试按钮时再次使用数据库中的数据加载表单(如果可用)。请帮助..

1 个答案:

答案 0 :(得分:2)

我个人将数据库和其他功能的加载提取到一个单独的方法,即LoadForm();,并从Form_Load方法调用该函数。

这样做,您可以从代码中的任何位置调用LoadForm();,这将导致重新加载所需的所有数据。

Form1_Load()
{
    LoadForm();
}

ButtonReload_Click()
{
    LoadForm();
}

提供的代码语法不正确,仅用作说明