private void SwitchSelectedServer(int listViewItemIndex) { //Sync any updated data with the ListView item tag if (this.splitContainer1.Panel2.Controls.Count > 0) { SyncFormMultiDbPageData(); this.splitContainer1.Panel2.Controls[0].Dispose(); this.splitContainer1.Panel2.Controls.Clear(); } for (int i = 0; i < lstServers.Items.Count; i++) { if (i == listViewItemIndex) { lstServers.Items[i].BackColor = Color.LightSteelBlue; } else { lstServers.Items[i].BackColor = SystemColors.Window; } } //Change the MultiDbPage Control ServerData dat = (ServerData)lstServers.Items[listViewItemIndex].Tag; MultiDbPage page = new MultiDbPage(dat, this.defaultDatabases); page.ServerRemoved += new ServerChangedEventHandler(pg_ServerRemoved); page.DataBind(); page.ValueChanged += new EventHandler(pg_ValueChanged); page.Dock = DockStyle.Fill; this.splitContainer1.Panel2.Controls.Add(page); }
private void SyncFormMultiDbPageData() { if (this.splitContainer1.Panel2.Controls[0] is MultiDbPage) { MultiDbPage current = (MultiDbPage)this.splitContainer1.Panel2.Controls[0]; foreach (ListViewItem item in lstServers.Items) { if (item.Text == current.ServerName) { item.Tag = current.ServerData; break; } } } }