Проблемы с TabControl - PullRequest
       7

Проблемы с TabControl

0 голосов
/ 10 декабря 2011

У меня проблема.Я использую TabControl и имею следующий код:

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

, но я получаю исключение KeyNotFoundException в SelectTab (patternID).Но действительно интересно то, что я получаю это исключение, только когда пытаюсь добавить 2-ю вкладку.

что я пропустил?

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 не обрабатывается. Message = Указанный ключ отсутствует в словаре.Source = System.Windows.Forms StackTrace: в System.Windows.Forms.Control.MarshaledInvoke (вызывающий элемент управления, метод Delegate, аргументы Object [], логический синхронный) в System.Windows.Forms.Control.Invoke (метод Delegate, Object [] args) в System.Windows.Forms.Control.Invoke (метод делегата) в Project1.Form1.InThread (вызов метода MethodInvoker) в C: \ Users \ пользователь \ 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.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart () InnerException:

...