public ParamsView AddOrigin() { var originX = _type.GetProperty("OriginX"); var originY = _type.GetProperty("OriginY"); var originObject = _type.GetField(nameof(MillingTechProcess.OriginObject)); var selector = CreateSelector("Начало координат", "۞"); var textBox = selector.Controls[0]; BindingSource.DataSourceChanged += (s, e) => RefreshText(); textBox.Enter += (s, e) => Acad.SelectObjectIds((ObjectId[])originObject?.GetValue(ParamsObject)); var button = selector.Controls[1]; button.Click += (s, e) => { Interaction.SetActiveDocFocus(); var point = Interaction.GetPoint("\nВыберите точку начала координат"); if (!point.IsNull()) { originX.SetValue(ParamsObject, point.X.Round(3)); originY.SetValue(ParamsObject, point.Y.Round(3)); RefreshText(); if (originObject.GetValue(ParamsObject) != null) { Acad.DeleteObjects((ObjectId[])originObject.GetValue(ParamsObject)); } originObject.SetValue(ParamsObject, Acad.CreateOriginObject(point)); } }; return(this); void RefreshText() => textBox.Text = $"{{{originX.GetValue(ParamsObject)}, {originY.GetValue(ParamsObject)}}}"; }