【发布时间】:2011-01-08 13:24:24
【问题描述】:
我有一个表单,其中包含一个带有 3 个选项卡的选项卡控件。如何使用后台工作线程仅刷新表单中的一个标签页而不刷新其他标签页?
【问题讨论】:
-
您能提供更多信息吗?这个选项卡控件在做什么?后台工作人员在做什么?正在更新的 UI 是什么?
标签: c# user-interface tabcontrol
我有一个表单,其中包含一个带有 3 个选项卡的选项卡控件。如何使用后台工作线程仅刷新表单中的一个标签页而不刷新其他标签页?
【问题讨论】:
标签: c# user-interface tabcontrol
以下是如何更新 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);
【讨论】: