Earthlingz
Earthlingz

Reputation: 33

Refresh/Update Controls inside usercontrol

I have a form that has TabControl with Dynamic TabPages in it. Each pages has usercontrol added using a loop. This is how I add the usercontrol in each pages.

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;
}

The usercontrol I made has a DataGridView in it so i want to refresh the content of it but I dont know how to do that without removing and readding the control back.

right now my solution is

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

is there any better way of refreshing the content without having to do that?

Upvotes: 1

Views: 1799

Answers (1)

fabricio
fabricio

Reputation: 1393

I'm going to write my answer here (I did it in the comments section because question was on hold).

My suggestion.. first implement a method in your user control like..

public void RefreshGrid()
{
    refresh datagridview data here
}

Second, itearate over selected tab page's controls and look for your usercontrol.. something like this..

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

Upvotes: 1

Related Questions