// Funzione che chiude un singolo tab nel caso si preme Disconnetti public void CloseTab(MyTabItem tab) { // Caso in cui il tab da chiudere sia l'ultimo attivo: chiusura dell'intera finestra if (TabItemList.Count == 1) { this.Close(); return; } MyTabManagement servertab = tab.TabManager; // In caso di chiusura della main window, la funzione di chiusura di questo tab non andrà più eseguita dal delegato ClosingEvent -= servertab.ServerTabClose; // Chiusura del tab servertab.ServerTabClose(); // Rimozione di questo tab dalla lista dei tab dei server TabItemList.Remove(tab); // Rimozione dei questa connessione dalla lista di connessioni attive ActiveConnectionsIPList.Remove(tab.TabServerIP); //rimuove dalla list box l'app in focus della tab in chiusura int index = AppsInFocus.IndexOf(new AppInFocus(tab.AppInFocus)); if (index != -1) { AppsInFocus.RemoveAt(index); } }
public override void CreateUI() { base.CreateUI(); ToggleGroup group; ToggleGroup(out group); items = new TabItemList(group); items.Content = this; }
//Funzione che crea un nuovo tab public void NewTab(TcpClient client, NetworkStream stream, String address) { MyTabItem tab = new MyTabItem(this); MyTabManagement s = new MyTabManagement(tab); //assegno la proprietà Header(ereditata da TabItem) e la proprietà "copia" interna di MyTabItem tab.Header = tab.TabServerIP = address; s.Connection = client; s.Stream = stream; s.StartServerDataExchange(); //assegno la proprietà Content(ereditata da TabItem) e la proprietà "copia" interna di MyTabItem tab.Content = tab.TabManager = s; // Aggiunta del nuovo tab alla lista TabItemList.Add(tab); // Evidenziazione dell'ultimo tab creato ServerTabControl.SelectedIndex = TabItemList.Count - 1; }