protected void OnTrackedObjectsListChanged(object sender, ListChangedEventArgs e) { switch (e.ListChangedType) { case ListChangedType.ItemAdded: AdminInfoObject obj = dataSource.TrackedObjects[e.NewIndex]; // create view usercontrol AdminInfoObjectView view = new AdminInfoObjectView(); view.Dock = DockStyle.Fill; view.DataSource = dataSource.TrackedObjects[e.NewIndex]; view.Close += OnAdminInfoObjectViewClose; view.CommandSend += OnAdminInfoObjectCommandSend; // create tabpage and add view TabPage tabPage = new TabPage(); tabPage.Text = "(" + obj.ID.ToString() + ") " + obj.ClassName; tabPage.Controls.Add(view); // add tabpage an set active tabObjects.TabPages.Add(tabPage); tabObjects.SelectedTab = tabPage; break; case ListChangedType.ItemDeleted: break; case ListChangedType.Reset: tabObjects.TabPages.Clear(); break; } }