4
private void UserList_Load(object sender, EventArgs e)
{
    // TODO: This line of code loads data into the 'workOrdersDataSet.users' table. You can move, or remove it, as needed.
    this.usersTableAdapter.Fill(this.workOrdersDataSet.users);
}

如果以其他形式进行了更改,我如何重新加载数据?(最好自动不使用刷新按钮)?

我正在使用 WinForms,后端是 Access 2007。

使用 Designer 将数据绑定到 Datagrid

4

2 回答 2

4

首先,我会将 移动Fill到一个单独的函数:

public void LoadData()
{
   this.usersTableAdapter.Fill(this.workOrdersDataSet.users);
}

然后,当您执行加载事件时,您将调用该函数:

private void UserList_Load(object sender, EventArgs e)
{
   LoadData();
}

如果您有另一个对数据执行更改的表单,您可以在另一个事件中调用此函数,类似于此。我DialogResult在我的代码中使用:

private void OpenOtherForm()
{
    DialogResult openForm = new OtherForm().ShowDialog();
    if(openForm == DialogResult.OK)
        LoadData();
}

在更新过程完成后,在另一个表单的代码中,包含一行代码来告诉您的主表单进行更新:

private void PerformUpdate()
{
    try
    {
        // your update code goes here
        DialogResult = DialogResult.OK; // this is the line that tells your other form to refresh
    }
    catch (Exception ex)
    {
        DialogResult = DialogResult.Abort;
    }
}

使用DialogResultthen,告诉您的主窗体仅在实际发生更新时触发数据刷新。

于 2012-05-01T20:12:57.677 回答
1

您可以将此行添加到另一个函数中,例如

public void MoveDataToUI()
{
   this.usersTableAdapter.Fill(this.workOrdersDataSet.users);
}

在从偶数处理程序调用此函数之后,当有人以另一种形式更改某些内容时会引发此函数。

活动教程

于 2012-05-01T19:40:59.223 回答