private void createValueEditor(Type type) { Type editorType = Plugin.InvokeEditorType(type); Debug.Check(editorType != null); ParInfo par = this._property as ParInfo; if (_property.Variable == null || _property.Variable.ValueType != type) { _property.Variable = new VariableDef(Plugin.DefaultValue(type)); } _valueEditor = (DesignerPropertyEditor)editorType.InvokeMember(string.Empty, System.Reflection.BindingFlags.CreateInstance, null, null, new object[0]); _valueEditor.Margin = new System.Windows.Forms.Padding(0); _valueEditor.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; _valueEditor.Width = this.dispTextBox.Width; _valueEditor.Location = this.dispTextBox.Location; _valueEditor.Location = new Point(_valueEditor.Location.X, _valueEditor.Location.Y - _valueEditor.Height - 6); _valueEditor.ValueWasChanged += new DesignerPropertyEditor.ValueChanged(editor_ValueWasChanged); if (par != null) { _valueEditor.SetPar(par, null); } else { _valueEditor.SetVariable(this._property.Variable, null); } _valueEditor.ValueWasAssigned(); this.Controls.Add(_valueEditor); _valueEditor.BringToFront(); }