Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在每次单击按钮时刷新用户控件_C#_Winforms_User Controls_Windows Forms Designer - Fatal编程技术网

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

C# 如何在每次单击按钮时刷新用户控件,c#,winforms,user-controls,windows-forms-designer,C#,Winforms,User Controls,Windows Forms Designer,我有一系列菜单选项,它们都是windows窗体应用程序上的单个用户控件 如何刷新用户控件,例如,如果我在txt文件中添加了一个新人,当我单击“生日”按钮时,它会在添加了新人的文件上再次执行生日用户控件中的所有功能 现在发生的事情是,当我向txt文件中添加一个新的person时,用户控件不会刷新,因此不会调用Data.updatedata方法,也不会更新数据 是否有特定的事件或方法可用于在单击时刷新用户控件 我已经尝试在主窗体中使用birthdayUserControl1.refresh name

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

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

现在发生的事情是,当我向txt文件中添加一个新的person时,用户控件不会刷新,因此不会调用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类。只要监视文件的内容发生更改,更改的事件就会通知您的应用程序。

刷新整个生日SuserControl 1不会刷新内部ListBox数据源,您需要手动刷新它

  private void button2_Click(object sender, EventArgs e)
        {
            birthdaysUserControl1.RefreshList();
        }
和生日内SUSERCONTROL1:

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