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

时间:2018-03-19 18:51:19

标签: c# winforms user-controls windows-forms-designer

我有一系列菜单选项,它们是Windows窗体应用程序上的所有单独用户控件。

enter image description here

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

enter image description here

现在发生的事情是当我向我的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,我想我必须重新设计一个我的项目的很大一部分,以促进这一点。我正在使用文本文件。

2 个答案:

答案 0 :(得分:1)

刷新整个生日,用户控件1无法刷新内部ListBox数据源,需要手动刷新它。

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

在birthdaysUserControl1里面:

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

答案 1 :(得分:0)

要观看文本文件的内容,可以使用System.IO.FileSystemWatcher类。只要观察文件的内容发生变化,Changed - 事件就会通知您的应用程序。