Form. On Load(EventArgs) Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
protected: virtual void OnLoad(EventArgs ^ e);
protected virtual void OnLoad (EventArgs e);
abstract member OnLoad : EventArgs -> unit override this.OnLoad : EventArgs -> unit
Protected Overridable Sub OnLoad (e As EventArgs)
Параметры
Объект класса EventArgs, содержащий данные события.
Комментарии
При возникновении события через делегат вызывается обработчик события. Дополнительные сведения см. в разделе Обработка и вызов событий.
Метод OnLoad также позволяет производным классам обрабатывать событие, не присоединяя делегат. Это предпочтительная методика обработки событий в производном классе.
Примечания для тех, кто наследует этот метод
При переопределении метода OnLoad(EventArgs) в производном классе нужно убедиться, что вызывается метод OnLoad(EventArgs) базового класса, чтобы зарегистрированные делегаты получили событие.
Form1 load в c что это
Для взаимодействия с пользователем в Windows Forms используется механизм событий. События в Windows Forms представляют стандартные события на C#, только применяемые к визуальным компонентам и подчиняются тем же правилам, что события в C#. Но создание обработчиков событий в Windows Forms все же имеет некоторые особенности.
Прежде всего в WinForms есть некоторый стандартный набор событий, который по большей части имеется у всех визуальных компонентов. Отдельные элементы добавляют свои события, но принципы работы с ними будут похожие. Чтобы посмотреть все события элемента, нам надо выбрать этот элемент в поле графического дизайнера и перейти к вкладке событий на панели форм. Например, события формы:

Чтобы добавить обработчик, можно просто два раза нажать по пустому полю рядом с названием события, и после этого Visual Studio автоматически сгенерирует обработчик события. Например, нажмем для создания обработчика для события Load :

И в этом поле отобразится название метода обработчика события Load. По умолчанию он называется Form1_Load .
Если мы перейдем в файл кода формы Form1.cs, то увидим автосгенерированный метод Form1_Load:
public partial class Form1 : Form < public Form1() < InitializeComponent(); >private void Form1_Load(object sender, EventArgs e) < >>
И при каждой загрузке формы будет срабатывать код в обработчике Form1_Load.
Как правило, большинство обработчиков различных визуальных компонентов имеют два параметра: sender — объект, инициировавший событие, и аргумент, хранящий информацию о событии (в данном случае EventArgs e ).
Но это только обработчик. Добавление же обработчика, созданного таким образом, производится в файле Form1.Designer.cs:
namespace HelloApp < partial class Form1 < private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) < if (disposing && (components != null)) < components.Dispose(); >base.Dispose(disposing); > private void InitializeComponent() < this.SuspendLayout(); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 261); this.Name = "Form1"; // добавление обработчика this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); >> >
Для добавления обработчика используется стандартный синтаксис C#: this.Load += new System.EventHandler(this.Form1_Load)
Поэтому если мы захотим удалить созданный подобным образом обработчик, то нам надо не только удалить метод из кода формы в Form1.cs, но и удалить добавление обработчика в этом файле.
Однако мы можем добавлять обработчики событий и програмно, например, в конструкторе формы:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HelloApp < public partial class Form1 : Form < public Form1() < InitializeComponent(); this.Load += LoadEvent; >private void Form1_Load(object sender, EventArgs e) < >private void LoadEvent(object sender, EventArgs e) < this.BackColor = Color.Yellow; >> >
Кроме ранее созданного обработчика Form1_Load здесь также добавлен другой обработчик загрузки формы: this.Load += LoadEvent; , который устанавливает в качестве фона желтый цвет.
Form1 load в c что это
Чтобы добавить еще одну форму в проект, нажмем на имя проекта в окне Solution Explorer (Обозреватель решений) правой кнопкой мыши и выберем Add(Добавить)->Windows Form.

Дадим новой форме какое-нибудь имя, например, Form2.cs:

Итак, у нас в проект была добавлена вторая форма. Теперь попробуем осуществить взаимодействие между двумя формами. Допустим, первая форма по нажатию на кнопку будет вызывать вторую форму. Во-первых, добавим на первую форму Form1 кнопку и двойным щелчком по кнопке перейдем в файл кода. Итак, мы попадем в обработчик события нажатия кнопки, который создается по умолчанию после двойного щелчка по кнопке:
private void button1_Click(object sender, EventArgs e)
Теперь добавим в него код вызова второй формы. У нас вторая форма называется Form2, поэтому сначала мы создаем объект данного класса, а потом для его отображения на экране вызываем метод Show:
private void button1_Click(object sender, EventArgs e)
Теперь сделаем наоборот — чтобы вторая форма воздействовала на первую. Пока вторая форма не знает о существовании первой. Чтобы это исправить, надо второй форме как-то передать сведения о первой форме. Для этого воспользуемся передачей ссылки на форму в конструкторе.
Итак перейдем ко второй форме и перейдем к ее коду — нажмем правой кнопкой мыши на форму и выберем View Code (Просмотр кода). Пока он пустой и содержит только конструктор. Поскольку C# поддерживает перегрузку методов, то мы можем создать несколько методов и конструкторов с разными параметрами и в зависимости от ситуации вызывать один из них. Итак, изменим файл кода второй формы на следующий:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HelloApp < public partial class Form2 : Form < public Form2() < InitializeComponent(); >public Form2(Form1 f) < InitializeComponent(); f.BackColor = Color.Yellow; >> >
Фактически мы только добавили здесь новый конструктор public Form2(Form1 f) , в котором мы получаем первую форму и устанавливаем ее фон в желтый цвет. Теперь перейдем к коду первой формы, где мы вызывали вторую форму и изменим его на следующий:
private void button1_Click(object sender, EventArgs e)
Поскольку в данном случае ключевое слово this представляет ссылку на текущий объект — объект Form1, то при создании второй формы она будет получать ее (ссылку) и через нее управлять первой формой.
Теперь после нажатия на кнопку у нас будет создана вторая форма, которая сразу изменит цвет первой формы.
Мы можем также создавать объекты и текущей формы:
private void button1_Click(object sender, EventArgs e)
При работе с несколькими формами надо учитывать, что одна из них является главной — которая запускается первой в файле Program.cs. Если у нас одновременно открыта куча форм, то при закрытии главной закрывается все приложение и вместе с ним все остальные формы.
Form. Load Событие
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит до первоначального отображения формы.
public: event EventHandler ^ Load;
public event EventHandler Load;
public event EventHandler? Load;
member this.Load : EventHandler
Public Custom Event Load As EventHandler
Тип события
Примеры
В следующем примере показано, как использовать SetDesktopLocationчлены , Load, Activatedи Activate . Чтобы выполнить пример, вставьте следующий код в форму с именем Form1 , содержащую вызываемую Button1 Button и два Label элемента управления с именем Label1 и Label2 .
static int x = 200; static int y = 200; void Button1_Click( System::Object^ sender, System::EventArgs^ e ) < // Create a new Form1 and set its Visible property to true. Form1^ form2 = gcnew Form1; form2->Visible = true; // Set the new form's desktop location so it // appears below and to the right of the current form. form2->SetDesktopLocation( x, y ); x += 30; y += 30; // Keep the current form active by calling the Activate // method. this->Activate(); this->Button1->Enabled = false; > // Updates the label text to reflect the current values of x // and y, which was were incremented in the Button1 control's // click event. void Form1_Activated( Object^ sender, System::EventArgs^ e ) < Label1->Text = String::Format( "x: y: ", x, y ); Label2->Text = String::Format( "Number of forms currently open: ", count ); > static int count = 0; void Form1_Closed( Object^ sender, System::EventArgs^ e ) < count -= 1; >void Form1_Load( Object^ sender, System::EventArgs^ e )
static int x = 200; static int y = 200; private void Button1_Click(System.Object sender, System.EventArgs e) < // Create a new Form1 and set its Visible property to true. Form1 form2 = new Form1(); form2.Visible = true; // Set the new form's desktop location so it // appears below and to the right of the current form. form2.SetDesktopLocation(x, y); x += 30; y += 30; // Keep the current form active by calling the Activate // method. this.Activate(); this.Button1.Enabled = false; >// Updates the label text to reflect the current values of x // and y, which was were incremented in the Button1 control's // click event. private void Form1_Activated(object sender, System.EventArgs e) < Label1.Text = "x: "+x+" y: "+y; Label2.Text = "Number of forms currently open: "+count; >static int count = 0; private void Form1_Closed(object sender, System.EventArgs e) < count -= 1; >private void Form1_Load(object sender, System.EventArgs e)
Shared x As Integer = 200 Shared y As Integer = 200 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Create a new Form1 and set its Visible property to true. Dim form2 As New Form1 form2.Visible = True ' Set the new form's desktop location so it appears below and ' to the right of the current form. form2.SetDesktopLocation(x, y) x += 30 y += 30 ' Keep the current form active by calling the Activate method. Me.Activate() Me.Button1.Enabled = False End Sub ' Updates the label text to reflect the current values of x and y, ' which was were incremented in the Button1 control's click event. Private Sub Form1_Activated(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Activated Label1.Text = "x: " & x & " y: " & y Label2.Text = "Number of forms currently open: " & count End Sub Shared count As Integer = 0 Private Sub Form1_Closed(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Closed count -= 1 End Sub Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load count += 1 End Sub
Комментарии
Это событие можно использовать для выполнения таких задач, как выделение ресурсов, используемых формой.
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.