WINFORM如何让子窗体的数据实时刷新?

gezhu1212 2021-03-02 10:08:41

点击启动停止按钮,读数据区的数据随时进行变化。现在的效果是,读数据区的数据是可以进行变化,但是需要先关闭读数据区的窗口,再打开,才能观察到它的数据是变化了。如果该窗体一直打开着,读数据区的数据一直不会变化。
        public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
RefreshForm();
}

public void RefreshForm()
{
#region 读数据
read_data_1.Text = MainForm.form1_read_data_1;
read_data_2.Text = MainForm.form1_read_data_2;
read_data_3.Text = MainForm.form1_read_data_3;
read_data_4.Text = MainForm.form1_read_data_4;
read_data_5.Text = MainForm.form1_read_data_5;
#endregion
}

MainForm里的数据确实可以实时改变,但是Form1里的数据不会实时改变
...全文
1030 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
石岩Maple 2021-03-02
  • 打赏
  • 举报
回复
而如果你是在mainform里声明的form1,那么你可以再form1里写个公共方法,再mainform里获取数据时,直接调用form1里的刷新方法即可
石岩Maple 2021-03-02
  • 打赏
  • 举报
回复
        public Form1()
        {
            InitializeComponent();
        }

        Timer timer;
        private void Form1_Load(object sender, EventArgs e)
  
        {
            timer = new Timer();

            timer.Tick += new EventHandler(RefForm);
            timer.Interval = 1000;//表示1秒刷新一次
            timer.Start();
        }

        public void RefreshForm()
        {
            #region 读数据
            read_data_1.Text = MainForm.form1_read_data_1;
            read_data_2.Text = MainForm.form1_read_data_2;
            read_data_3.Text = MainForm.form1_read_data_3;
            read_data_4.Text = MainForm.form1_read_data_4;
            read_data_5.Text = MainForm.form1_read_data_5;
            #endregion
        }

        private void RefForm(object sender, EventArgs e)
        {
            RefreshForm();
        }
石岩Maple 2021-03-02
  • 打赏
  • 举报
回复
        public Form1()
        {
            InitializeComponent();
        }

        Timer timer;
        private void Form1_Load(object sender, EventArgs e)
  
        {
            timer = new Timer();
            Timer timer = new Timer();
            timer.Tick += new EventHandler(RefForm);
            timer.Interval = 1000;//表示1秒刷新一次
            timer.Start();
        }

        public void RefreshForm()
        {
            #region 读数据
            read_data_1.Text = MainForm.form1_read_data_1;
            read_data_2.Text = MainForm.form1_read_data_2;
            read_data_3.Text = MainForm.form1_read_data_3;
            read_data_4.Text = MainForm.form1_read_data_4;
            read_data_5.Text = MainForm.form1_read_data_5;
            #endregion
        }

        private void RefForm(object sender, EventArgs e)
        {
            RefreshForm();
        }
白衣如花 2021-03-02
  • 打赏
  • 举报
回复
你在获取数据的地方调用一下RefreshForm方法呀
石岩Maple 2021-03-02
  • 打赏
  • 举报
回复
因为你是在窗体加载时刷新的form1,所以只有再次打开的时候才能看到刷新结果,我不知道你前面怎么写的,但是以你现在的写法,使用定时器最好

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧