//---------------------------------------------------------- //Remet à jour la liste des contrôles disponibles et compatibles avec le type édité public void RefreshControls() { m_listeElements.Clear(); this.SuspendDrawing(); Dictionary <Type, bool> typesTraites = new Dictionary <Type, bool>(); ArrayList lstControles = new ArrayList(Controls); foreach (Control ctrl in lstControles) { CElementListeSymbole elt = ctrl as CElementListeSymbole; typesTraites.Add(elt.TypeAssocie, true); if (elt != null) { m_listeElements.Add(elt); } else { m_listeElements.Add(elt); } } m_listeTypesControlesConnus.Sort(new TypeSorter()); foreach (Type tp in m_listeTypesControlesConnus) { if (!typesTraites.ContainsKey(tp)) { CElementListeSymbole elt = new CElementListeSymbole(); elt.Image = C2iSymbole.GetImage(tp); Controls.Add(elt); elt.TypeAssocie = tp; elt.Size = new Size(ClientRectangle.Width, c_nElementHeight); elt.Left = 0; elt.Top = m_listeElements.Count * (c_nElementHeight + c_nEcartYElements) + c_nEcartYElements; elt.CreateControl(); elt.Dock = DockStyle.Top; elt.SendToBack(); elt.Visible = true; m_listeElements.Add(elt); } } this.ResumeDrawing(); }
//---------------------------------------------------------- //Remet à jour la liste des contrôles disponibles et compatibles avec le type édité public void RefreshControls() { m_listeElements.Clear(); SuspendLayout(); Dictionary <Type, bool> typesTraites = new Dictionary <Type, bool>(); ArrayList lstControles = new ArrayList(Controls); foreach (Control ctrl in lstControles) { CElementListeSymbole elt = ctrl as CElementListeSymbole; typesTraites.Add(elt.TypeAssocie, true); if (elt != null) { C2iSymbole symbole = (C2iSymbole)Activator.CreateInstance(elt.TypeAssocie); /* if (!wnd.CanBeUseOnType(m_typeEdite)) * { * elt.Visible = false; * elt.Parent.Controls.Remove(elt); * elt.Dispose(); * } * else*/ m_listeElements.Add(elt); } else { m_listeElements.Add(elt); } } foreach (Type tp in m_listeTypesControlesConnus) { if (!typesTraites.ContainsKey(tp)) { if (!tp.IsAbstract) { C2iSymbole symbole = (C2iSymbole)Activator.CreateInstance(tp); /* if (!wnd.CanBeUseOnType(m_typeEdite)) * continue;*/ } CElementListeSymbole elt = new CElementListeSymbole(); // elt.Image = C2iWnd.GetImage(tp); /*object[] atts = tp.GetCustomAttributes(typeof(AWndIcone), false); * * if (atts.Length >= 1) * { * AWndIcone att = (AWndIcone)atts[0]; * elt.Image = att.Icone; * }*/ elt.Parent = this; elt.TypeAssocie = tp; elt.Size = new Size(ClientRectangle.Width, c_nElementHeight); elt.Left = 0; elt.Top = m_listeElements.Count * (c_nElementHeight + c_nEcartYElements) + c_nEcartYElements; elt.CreateControl(); elt.Dock = DockStyle.Top; elt.Visible = true; m_listeElements.Add(elt); } } ResumeLayout(); }