刷新/更新usercontrol中的控件

本文关键字:控件 usercontrol 更新 刷新 | 更新日期: 2023-09-27 18:15:11

我有一个具有动态TabPagesTabControl的表单。每个页面都使用循环添加了usercontrol。这就是我在每个页面中添加usercontrol的方法。

for (var i = 0; i < tbl.Rows.Count; i++)
{
    uctrTab = new XtraTabPagesUserCtrl();
    xtab.TabPages[i].Text = "Table " + (i+1);
    uctrTab.LayoutClicked += new MouseEventHandler(Layout_Click);
    xtab.TabPages[i].Controls.Add(uctrTab);
    xtab.TabPages[i].PageVisible = !xtab.TabPages[i].PageVisible;
}

我所做的用户控件有一个DataGridView在它,所以我想刷新它的内容,但我不知道如何做到这一点,而不删除和读取控制返回。

现在我的解是

 xtab.SelectedTabPage.Controls.Clear();
 uctrTab = new XtraTabPagesUserCtrl();
 uctrTab.LayoutClicked += new MouseEventHandler(Layout_Click);
 xtab.SelectedTabPage.Controls.Add(uctrTab);

有没有更好的方法来刷新内容而不需要这样做?

刷新/更新usercontrol中的控件

我将在这里写下我的答案(我是在评论区写的,因为问题被搁置了)。

我的建议. .首先在你的用户控件中实现一个方法,比如。

public void RefreshGrid()
{
    refresh datagridview data here
}

第二,遍历所选选项卡页的控件并查找您的usercontrol..就像这样…

foreach(Control ctrl in selectedTabPage.Controls)
{ 
    if(ctrl is XtraTabPagesUserCtrl)
    { 
        ((XtraTabPagesUserCtrl)ctrl).RefreshGrid(); 
    } 
}