如何在每次单击按钮时刷新用户控件

How to refresh a user control every time a button is clicked

我有一系列菜单选项,它们都是 windows 表单应用程序上的各个用户控件。

我如何刷新用户控件,例如,如果我在我的 txt 文件中添加了一个新人,当我单击“生日”按钮时,它会再次在文件上执行生日用户控件中的所有功能添加了新人。

现在发生的事情是,当我向我的 txt 文件中添加一个新人时,用户控件不会刷新,因此不会调用 Data.updatedata() 方法并且不会更新数据。

是否有特定的事件或方法可用于在单击时刷新用户控件?

我试过在主窗体中使用 birthdayUserControl1.refresh()

namespace Project
{
    public partial class ChildrenUi : Form
    {

        public ChildrenUi()
        {
            InitializeComponent();
            homeUserControl1.BringToFront();


        }

        private void button2_Click(object sender, EventArgs e)
        {
            birthdaysUserControl1.Refresh();
            birthdaysUserControl1.BringToFront();
        }

     }

}

我才刚刚开始学习 Winforms,并在关于刷新用户控件的类似问题上使用 XAML/XML 文件遇到了数据绑定,但是我对 XAML/XML 了解不多,我想我必须重新设计我的项目的很大一部分以促进这一点。我正在使用文本文件。

要查看文本文件的内容,您可以使用 System.IO.FileSystemWatcher class。 Changed-事件会在监视文件的内容发生更改时通知您的应用程序。

刷新整个 birthdaysUserControl1 不会刷新内部 ListBox 数据源,您需要手动刷新它。

  private void button2_Click(object sender, EventArgs e)
        {
            birthdaysUserControl1.RefreshList();
        }

在 birthdaysUserControl1:

 public void RefreshList()
        {
            listbox1.DataSource=null;       
            listbox1.DataSource=UpcominBdays; 
        }