TabControl的问题

时间:2011-12-10 12:47:58

标签: c# tabcontrol

我有问题。我使用TabControl并使用下一个代码:

MyTabControl.TabPages.Add(patternID, header);
MyTabControl.SelectTab(patternID);

但是我在SelectTab(patternID)中得到了KeyNotFoundException。但真正有趣的是,只有在我尝试添加第二个标签页时才会出现此异常。

我错过了什么?

InThread(() =>
{
    bookBoxControl.TabPages.Add(pem.patternID, str);
    playPageMenuItem.Enabled = true;
    bookBoxControl.SelectTab(pem.patternID);
});

private void InThread(MethodInvoker callBack)
{
    lock (this)
    {
        if (IsDisposed)
            return;
        if (InvokeRequired)
            Invoke(callBack); // !!line 118!!
        else
            callBack();
    }
}

我使用InThread()从非图形线程更改表单元素。

堆栈跟踪:

  

未处理System.Collections.Generic.KeyNotFoundException     消息=字典中没有给定的键。     来源= System.Windows.Forms的     堆栈跟踪:          System.Windows.Forms.Control.MarshaledInvoke(Control caller,Delegate方法,Object [] args,布尔同步)          System.Windows.Forms.Control.Invoke(Delegate方法,Object [] args)          System.Windows.Forms.Control.Invoke(委托方法)          Project1.Form1.InThread(MethodInvoker callBack) - C:\ Users \ user \ Documents \ Visual Studio 2010 \ Projects \ Project1 \ Form1.cs:第118行          Project1.Form1.Run()C:\ Users \ user \ Documents \ Visual Studio 2010 \ Projects \ Project1 \ Form1.cs:строка202          System.Threading.ThreadHelper.ThreadStart_Context(对象状态)          System.Shreading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)          вSystem.Threading.ThreadHelper.ThreadStart()     InnerException:

0 个答案:

没有答案