2010-03-20 3 views
6

Я начинаю свой первый проект C#, и я хочу создать «конструктор форм» (как в VS).Как я могу создать свой собственный конструктор форм?

Идея заключается в том, что будет создан визуальный конструктор форм с ограниченным набором инструментов, который будет генерировать код Python (позже более) для создания той же формы.

Проблема в том, что я понятия не имею, как начать работу. Прежде всего, у меня есть конструктор форм в VS: как мне создать «форму внутри формы»?

Далее ... Я понятия не имею, насколько это будет сложно. Я полагаю, что я мог бы просто создавать маленькие прямоугольники рядом с каждым элементом управления, созданным в форме, когда он нажимается, для изменения размера и создания текстового поля при двойном щелчке или что-то в нем, чтобы изменить текст в нем ... Такие вещи.

Итак, еще одна вещь, которую я хотел бы знать:
У меня есть опыт программирования на C и C++, я сделал PHP в течение нескольких лет и начинаю с Python. Я динамически генерировал формы в VB6. Учитывая этот опыт, я нахожусь на своем пути с этим проектом?

+0

Вы описываете проект времени выполнения C#, который имитирует пользовательский интерфейс для создания WinForms здесь, который вы затем переведёте «под капот» в Python? Или вы говорите о каком-то интерфейсе Design-Time? – BillW

+0

Первый, думаю. –

ответ

5

this выглядит как действительно хорошее место для начала. У этого есть довольно хороший пример, чтобы вы начали. Вы даже можете скачать его источник (требуется регистрация).

+0

Отлично, я посмотрю на этот код.Я уверен, что смогу понять это - спасибо –

3

Похоже, вы знаете, что это нетривиально для первого таймера C#. Если вы держите его довольно простым, это звучит так, будто вы направляетесь в правильном направлении (хотя разработчику форм в Интернете может быть проще).

SharpDevelop будет примером полнофункциональной среды разработки, которая может быть переназначена, но это путь сверху.

Удачи вам!

+0

Любая идея, как бы я нарисовал форму в форме, например, в дизайнере VS-формы? Прямо сейчас я играю с идеей иметь родительское окно MDI, а дочерние окна будут «редактируемыми» ... что может работать. Я полагаю, –

+0

@ Карсон VS Design Designer не позволяет вам размещать/рисовать визуально визуально внутри другого Форма во время разработки: в модели MDI вы должны установить MdiParent в коде, и вы не увидите «форму MdiChild» до тех пор, пока не выполните программу. UserControls и даже «производные элементы управления», которые происходят из элементов управления WinForms, таких как TreeView и ListView: они появятся в панели инструментов Design-Time: но не Forms. Да, конечно, во время выполнения вы можете перемещаться по формам MdiChild, которые вы создали. – BillW

+0

Право, это то, о чем я думал. Посмотрите на ссылку в принятом ответе - это моя цель, она была написана на C# - это можно сделать с помощью конструктора форм или это только настройка MDI, которая была изменена? –

3

Для большинства людей, стартующих на C#, этот проект будет слишком большим. Однако с вашим фоном VB6 вы можете его отключить.

Подсказка: дизайнер Visual Studio Windows Forms рисует элементы управления на своей поверхности - попросив элементы управления рисовать сами.

+0

Я сделал что-то подобное в VB6, где формы были созданы на основе скриптов. Я был просто смущен тем, что ставил формы в других формах - не совсем точно, как интерпретировать ваш последний момент, я думаю, это станет ясно, как только я пойму немного больше об этом процессе. –

+0

@ Карсон: вы спросили, как нарисовать форму - я ответил, что вы должны получить элементы управления, которые вы размещаете на форме, чтобы нарисовать себя. Познакомиться с методами и свойствами класса 'Control'. –

+0

Хорошо, спасибо за совет –

Смежные вопросы