2017-02-06 1 views
0

У нас есть очень компактная winform с более чем 180 элементами управления, размещенными в ней.
Большинство этих элементов управления расположены динамически, некоторые из них отображаются/скрыты на основе некоторых настроек.
В рамках оптимизации кода я решил разбить InitializeComponent на три, а в конструкторе формы на основе параметра i выберет правильный InitializeComponent, который будет иметь только элементы управления для этого рабочего процесса, инициализированного.Несколько InitializeComponent для winform

Является ли этот подход правильно, есть ли другой способ сделать это

+1

Нет, это неправильный подход. Не имеет никакого смысла «оптимизировать» InitializeComponent(), вы сами не пишете этот метод. В лучшем случае вы больше не сможете больше открывать форму в дизайнере, в худшем случае все сделанные вами изменения исчезнут без следа. Гораздо более логичным подходом является создание трех UserControls. Класс формы теперь станет очень маленьким, ему нужно только создать UC, который вы хотите отобразить. Если эти UC имеют общие черты, вероятно, случай, а затем выводят один из другого, чтобы вы не дублировали код. –

+0

Благодарим вас за предложение Я устал от формы с образцом, и мне удалось открыть конструкторскую форму. Другая точка. С UC мне нужно переставить элементы управления в соответствии с дизайном формы, если это так не будет возможным, как все элементы управления расположены динамически – AnoopJamesLeo

ответ

0

Кажется, прямо ко мне, предполагая, что вы отказались от дизайнера и написать InitializeComponent() методы самостоятельно. В противном случае дизайнер может каким-то образом переписать ваш код.

+0

любой другой лучшей реализации, которую вы бы предложили – AnoopJamesLeo

+0

@ Решение HansPassant также хорошо. Я не делал winforms через некоторое время. –

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

  • Нет связанных вопросов^_^