2016-11-29 3 views
0

Итак, у меня есть опыт работы на C++, и теперь я запутался в C# .NET с помощью Windows Forms. Я знаю, как создать новую форму, которую я могу использовать в качестве нового окна. И вы также можете создать пользовательский элемент управления, компонент или обычный класс.Узлы в Windows Forms

Теперь я сделал приложение в C++, но я хочу преобразовать его в C# .NET. В C++ я сам создал весь gui. Но я хочу сделать это сейчас на C# .NET для практики.

В этом приложении пользователь может создать узлы (как вы можете в нереальном двигателе 4 в чертежах, см примера фото)

Теперь я не уверен, что будет лучшим способом сделать это в формах Windows.

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

Лучше ли создать его с нуля самостоятельно в классе? Или я могу достичь этого с помощью пользовательского элемента управления или класса компонента? Я не понимаю, как лучше всего использовать эти классы и для чего они используются.

Так что я хочу сделать что-то вроде этого, и вопрос в том, что это лучший тип класса, чтобы узлы с ?: enter image description here

+3

Для чего-то подобного, я бы посоветовал вам использовать [WPF] (https://msdn.microsoft.com/es-es/library/ms754130 (v = vs.110) .aspx) вместо Winforms. – Pikoh

+0

Итак, вы хотите, чтобы «узлы» были подвижными? Как вы планируете делать соединительные линии. Imo, они являются hardes psrt. Да, добавление «узла UserControl» - это то, что я бы рекомендовал, добавив его в подклассу с двойным буфером. - И да, это выглядит немного растянутым для winforms. – TaW

+0

Согласитесь, WPF значительно упростит это, например. [Как создавать и подключать пользовательские кнопки/элементы управления с линиями, используя формы окон) (http://stackoverflow.com/questions/15819318/how-to-create-and-connect-custom-user-buttons-controls-with- line-using-windows) –

ответ

1

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

enter image description here

Вы можете создать почти каждый макет, который вы хотите с помощью сетки, бордюры, stackpanels , док-панели, дорожки и т. д.