关于刷新UI!

时间:2010-01-23 13:25:26

标签: c# user-interface tabcontrol

我有一个表单,其中包含一个带有3个选项卡的选项卡控件。如何使用backgroundworker线程仅刷新表单中的一个标签页而不刷新其他标签?

1 个答案:

答案 0 :(得分:2)

以下是如何更新tabcontrol中的特定标签页:

private delegate void RefreshTabPageDelegate(int tabPage);

public static void RefreshTabPageThreadSafe(int tabPage)
{
  if (tabControl.InvokeRequired)
  {
    tabControl.Invoke(new RefreshTabPageDelegate(RefreshTabPageThreadSafe), new object[] { tabPage });
  }
  else
  {
    if(tabControl.TabPages.Count > tabPage)
    {
      tabControl.TabPages[tabPage].Refresh();
    }
  }
}

这样称呼:

// thread-safe equivalent of
// tabControl.TabPage[1].Refresh();
RefreshTabPageThreadSafe(1);