private void valueComboBox_SelectedIndexChanged(object sender, EventArgs e) { if (!_valueWasAssigned || typeComboBox.SelectedIndex < 0 || typeComboBox.SelectedIndex >= _currentNames.Count || valueComboBox.SelectedIndex < 0 || valueComboBox.SelectedIndex >= _methods.Count) { return; } MethodDef m_ = _methods[valueComboBox.SelectedIndex] as MethodDef; MethodDef m = new MethodDef(m_); m.Owner = _currentNames[typeComboBox.SelectedIndex]; DesignerMethodEnum attrMethod = _property.Attribute as DesignerMethodEnum; if (attrMethod != null) { if ((attrMethod.MethodType & MethodType.AllowNullMethod) == MethodType.AllowNullMethod && attrMethod.HasFlags(DesignerProperty.DesignerFlags.BeValid) && attrMethod.Display == DesignerProperty.DisplayMode.List) { object oldValue = _property.Property.GetValue(_object, null); if (oldValue == null) { Nodes.Node n = this._object as Nodes.Node; if (n != null) { //n.AddSubItem(new NodeViewData.SubItemProperty(n, _property, attrMethod)); n.DoSubItemAdded(_property); } } } _property.Property.SetValue(_object, m, null); } else { object propertyMember = _property.Property.GetValue(_object, null); RightValueDef oldvarRV = propertyMember as RightValueDef; RightValueDef v = new RightValueDef(m, oldvarRV.ValueClass); _property.Property.SetValue(_object, m, null); } OnValueChanged(_property); this.RereshProperty(true, _property); }