这个问题已经在这里有了答案:




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

08-06 06:30