UserControl: возможность редактирования его свойств в отдельной форме - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. суть проблемы в следующем. имеется класс Tool, описывающий UserControl. По щелчку просто отрисовывается прямоугольник, который можно двигать, а по клику открывается форма для заполнения данных (имя, длина, ширина, высота) будущей детали. В класс Tool создан динамический массив, чтобы хранить все данные.
 ArrayList tool = new ArrayList();
 
        public void AddTool(string Name, int Lenght, int Wide, int Thickness)
        {
            tool.Add(new Tool());
        }
 
        public void DeleteTool(int index)
        {
            tool.RemoveAt(index);
        }
 
        public Tool GetTool(int index)
        {
            return (Tool)tool[index];
        }
 
        public Tool this[int index]
        {
            get { return (Tool)tool[index]; }
        }
по щелчку по кнопке на форме срабатывает код
Tool det = new Tool();
            det.Left = 200;
            det.Top = 50;
            det.MouseDown += control_MouseDown;
            det.MouseUp += control_MouseUp;
            det.MouseMove += control_MouseMove;
            det.MouseDoubleClick += control_MouseDoubleClick;
            panel2.Controls.Add(det);

            Деталь editForm = new Деталь();
            if (editForm.ShowDialog() != DialogResult.OK)
                return;
            tools.AddTool(editForm.name, editForm.lenght, editForm.wide, editForm.thickness);
все ли правильно и как к двойному клику по детали вызывать форму, куда будут вводится все заполненные данные для этого элемента с возможностью их редактирования. код формы для редактирования
 public string name  //задание имени детали
        {
            get { return tbName.Text; }
            set { tbName.Text = value; }
         }

        public int lenght //задание длинны детали
        {
            get { return (int)numLenght.Value; }
            set { numLenght.Value = value; }
        }
 
        public int wide //задание ширины детали
        {
            get { return (int)numWide.Value; }
            set { numWide.Value = value; }
        }

        public int thickness //задание толщины детали
        {
            get { return (int)numThickness.Value; }
            set { numThickness.Value = value; }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.OK;
        }
спасибо за помощь. если можно, то с примером

Решение задачи: «UserControl: возможность редактирования его свойств в отдельной форме»

textual
Листинг программы
propertyGrid1.SelectedObject =yourObject;

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы