.
C# и ООП для профессионалов. Урок 13. Пишем дизайнер форм.
Автор megabax   
25.02.2024 г.
New Page 1

C# и ООП для профессионалов. Урок 13. Пишем дизайнер форм.

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Часто бывает, что создан какой то класс со множеством полей. И эти поля надо редактировать в диалоге. И вот мы создаем форму, кладем на нее компоненты, потом еще пишем строки кода для присваивания значения полей формы полям объекта и наоборот. Жутко трудоемок и неудобно. Возникает вопрос, а можно ли как то избежать этого гемороя? Тем более, в таких системах, например, как 1С:Предприятие, это проблема давно успешно решена. В принципе, ее можно решить и в C#. Как? Написать программу, которая бы каждый раз создавала нужную форму, так сказать, "на лету". В C# для этого есть необходимые средства: рефлексия типов (см.  "C# и ООП для профессионалов. Урок 10. Рефлексия типов и позднее связывание. Метаданные." и "C# и ООП для профессионалов. Урок 11. Рефлексия типов и позднее связывание. Продолжение").

Сейчас, используя знания, полученные в этих уроках, плюс еще кое какие знания, которым мы сейчас получим, напишем дизайнер форм.

И так, для написания дизайнера форм нам еще понадобиться умение ...

...

...Ключевые методы этого класса fill_form - создать форму и fill_object - заполнить объект по данным формы. Пример использования:

        private void btnTest_Click(object sender, EventArgs e)

        {

            Designer designer = new Designer();

            Form form = new Form();

            form.Width = 400;

 

            designer.fill_form(demo, form);

            form.ShowDialog();

            designer.fill_object(demo, form);

 

            //проверка

            lbRes.Items.Clear();

            lbRes.Items.Add("proba=" + demo.proba);

            lbRes.Items.Add("proba1=" + demo.proba1);

            lbRes.Items.Add("proba2=" + demo.proba2);

            lbRes.Items.Add("proba6=" + demo.proba6);

            lbRes.Items.Add("prop1=" + demo.prop1);

        }

А вот скриншот работы примера:

C# и ООП для профессионалов. Урок 13. Пишем дизайнер форм.

 

 

Последнее обновление ( 25.02.2024 г. )