Предпочтительно отделить код, который генерирует дизайнер форм, от кода, над которым вы хотите иметь некоторый контроль.Порядок, в котором вам нужно обратиться к этому коду, может быть обработан в конструкторе формы.Пример:
namespace FormTest
{
public partial class Form1 : Form
{
private Label PostAddedLabel;
public Form1()
{
InitializeComponent();
PostInitializeComponents();
}
private void PostInitializeComponents()
{
if (!this.DesignMode)
{
PostAddedLabel = new Label();
PostAddedLabel.Left = 100;
PostAddedLabel.Top = 30;
PostAddedLabel.Text = "The Post-added Label";
this.Controls.Add(PostAddedLabel);
}
}
}
}
Мы можем просто спроектировать форму в конструкторе, после успешного этапа проектирования мы можем переместить объявление, назначения и связанный код, который мы хотим разделить с методом PostInitializeComponents.
Используя решение! This.DesignMode, форма отобразит отдельные элементы управления в режиме выполнения.В режиме конструктора эти элементы управления не будут отображаться, гарантируя, что система не повлияет на эти элементы управления при разработке формы.
Если вы хотите использовать эту методологию также в пользовательских элементах управления, попробуйте встроить «IsDesignerHosted»."Метод над" DesignMode "из следующей статьи: DesignMode с элементами управления
Надеюсь, это ответ на вопрос?