【问题标题】:Reload the form with updated data when its call C# winforms application在调用 C# winforms 应用程序时使用更新的数据重新加载表单
【发布时间】:2019-02-25 17:00:01
【问题描述】:

我有一个主窗体,在主窗体内我添加了一个 splitContainer 将窗体分成两个部分 panel1 和 panel2。在 panel1 中,我添加了菜单按钮 Company 按钮来打开 Company Form 和 Distribution 按钮来打开 Distribution 表格,我已经创建了它们之间的关系。 当我插入一家新公司并以分布形式添加其分布时,我插入的公司无法在组合框中显示。 主要问题是我的分发表单无法重新加载以从 db 获取更新的数据,它唯一的隐藏和显示表单。 我想在调用时重新打开或重新加载表单。 Company Form | Distribution Form

【问题讨论】:

  • 为什么无法获取更新数据?首先,您是如何获取数据的?是什么阻止了您重复该过程?
  • 也许,您不应该在Form.Load 事件中加载数据,而是说使用方法LoadAllData,并保留public bool 属性来跟踪是否需要重新加载数据。现在在您的Form.Show 中,您可以致电if (ReloadRequired) LoadAllData()。这样你就可以从表单外部控制ReloadRequired并成功刷新数据
  • 当我重新运行我的应用程序时,它会在分布组合框中显示新数据,因为我使用 show 方法在单击按钮时显示表单,它只是简单地显示表单而不是重新加载表单以显示更新的数据我在应用程序运行后插入的。只是我想在另一个打开时关闭它。问题是在运行应用程序后,当它的调用和显示方法无法获取我在应用程序运行后插入的数据时,所有表单都只是显示和隐藏。我希望你明白我的问题。

标签: c# .net winforms desktop-application


【解决方案1】:

在主窗体中分发按钮单击事件调用从 loaddata 自定义方法分发按钮单击时加载更新日期。

解决方案代码

    namespace ChildrenChoicePOS
    {
        public partial class Main : Form
        {
            CompanyForm companyForm = new CompanyForm();
            DistributionForm distributionForm = new DistributionForm();
            public Main()
            {
                InitializeComponent();
                activeBar.Top = btnCompany.Top;
                activeBar.Height = btnCompany.Height;
            }
            private void btnDistribution_Click(object sender, EventArgs e)
            {
                distributionForm.loadData();
                all_form();
                distributionForm.Show();
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2014-07-24
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多