об обновлении интерфейса! - PullRequest
0 голосов
/ 23 января 2010

У меня есть форма, которая содержит одну вкладку с 3 вкладками. Как обновить только одну вкладку в форме с потоком фонового работника, а не обновить другие вкладки?

1 Ответ

2 голосов
/ 23 января 2010

Вот как обновить конкретную вкладку в 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);
...