private void createArrayPropertyEditor(int itemIndex, Type editorType, bool isSelected) { Debug.Check(_arrayProperty != null); string propertyName = string.Format("{0}", itemIndex); Label label = propertyGrid.AddProperty(propertyName, editorType, _arrayProperty.ReadOnly); label.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); label.MouseClick += new MouseEventHandler(label_MouseClick); DesignerPropertyEditor editor = (DesignerPropertyEditor)label.Tag; if (Plugin.IsCustomClassType(_arrayProperty.ItemType)) { editor.SetStructProperty(new DesignerStructPropertyInfo( _arrayProperty.ItemType.Name, _arrayProperty.ItemType, _arrayProperty.ItemList[itemIndex], itemIndex), _object); } else { DesignerArrayPropertyInfo arrayProperty = new DesignerArrayPropertyInfo(_arrayProperty); arrayProperty.ItemIndex = itemIndex; editor.SetArrayProperty(arrayProperty, _object); } editor.ValueWasAssigned(); editor.ValueWasChanged += editor_ValueWasChanged; if (isSelected) { selectLabel(label); } }