这个问题已经在这里有了答案:
7年前关闭。
public void CheckUnusedTabs(string strTabToRemove)
{
TabPage tp = TaskBarRef.tabControl1.TabPages[strTabToRemove];
tp.Controls.Remove(this);
TaskBarRef.tabControl1.TabPages.Remove(tp);
}
我正在尝试使用上述代码在Windows应用程序的tabcontrol中关闭选项卡,但遇到错误:
如何解决呢?
最佳答案
您只能从主线程对WinForm控件进行更改。您需要检查控件上的InvokeRequired是否为true,然后根据需要调用该方法。
您可以执行以下操作使其生效:
public void CheckUnusedTabs(string strTabToRemove)
{
if (TaskBarRef.tabControl1.InvokeRequired)
{
TaskBarRef.tabControl1.Invoke(new Action<string>(CheckUnusedTabs), strTabToRemove);
return;
}
TabPage tp = TaskBarRef.tabControl1.TabPages[strTabToRemove];
tp.Controls.Remove(this);
TaskBarRef.tabControl1.TabPages.Remove(tp);
}