آموزش Windows Forms Events Lifecycle
بسم الله الرحمن الرحیم
در ارتباط
بسم الله الرحمن الرحیم
در ارتباط با Windows Form کتابها و مقالات زیادی وجود که به وسیله آن می توانید به سادگی راه و روش ایجاد یک برنامه را آموزش ببینید. در اینجا یک آموزش در خصوص ترتیب اجرای Event ها وجود دارد، اگر شما lifecycle فرم را بدانید بهتر می توانید اطلاع پیدا کنید که Event های خود را در کدام بخش بنویسید.
در مورد ASP.NET اطلاعات زیادی در خصوص ترتیب اجرا شدن Event ها وجود دارد اما در مورد Windows Form اطلاعات به سختی بدست خواهد آمد.
در ایجا لیست و ترتیب اجرای Event ها را برای شما قرار داده ام
• Move: این رویداد زمانی اتفاق می افتد که فرم تغییر مکان دهد، اما دهنگام اجرای برنامه هرچند کاربر فرم را تغییر مکاتن نمی دهد ولی این رویداد اجرا می شود.
• Load: این رویداد در اولین بار قبل از نمایش فرم اتفاق می افتد.
• VisibleChanged: این رویداد با تغییر Visible اتفاق می افتد.
• Activated: این رویداد پس از Activated شدن توسط کد یا کاربر اتفاق می افتد.
• Shown:این رویداد زمانی اتفاق می افتد که برای اولین بار فرم نمایش داده شده است.
• Paint: این رویداد در زمانی که فرم ترسیم می شود اتفاق می افتد.
• Deactivate: این رویداد در زمانی که فرم فوکس خود را از سدت یم دهد و یا فعال نیست اجرا می شود
• Closing: این رویداد در زمانی که فرم در حال بسته شدن است اتفاق می افتد.
• Closed: این رویداد در زمانی که فرم در شروع به بسته شدن می کند اتفاق می افتد.
برای آشنایی بیشتر یک مثال را بررسی خواهیم کرد.
برای شروع در Visual Studio یک پروژه Windows Application ایجاد کنید، حال تمامی Event های بالا را که لیست شده است با استفاده از پنجره Properties ایجاد کنید. (برای مشاهده پنجره Properties می توانید بر روی Form کلیک کنید و سپس کلید F4 فشار دهید).
با کلیک بر روی هر Event در پنجره Properties کد مربوطه به برنامه اضافه می شود، پس از اضافه شدن تمامی کدهای Event های ما می توانید کدهای زیر را درون Event های ایجاد شده قرار دهید.
قبل از نوشتن کدهای Event ها Form1.Designer.cs را باز کنید و کد زیر را درآن قرار دهید (فقط سه خط مشخص شده را کافی است اضافه کنید)
using System.IO; //این خط باید اضافه کنید
namespace LifecycleDemo
{
partial class Form1
{
StreamWriter sr = new treamWriter("D:\\formevents.txt"); //این خط باید اضافه کنید
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
sr.Close();//این خط باید اضافه کنید
}
#region Windows Form Designer generated code
#endregion
}
}
حال کدهای زیر را در Form1.cs اضافه کنید (فقط خطهایی که بولد شده است را کافی است اضافه کنید):
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Move(object sender, EventArgs e)
{
sr.WriteLine("1 - Move event");
}
private void Form1_Load(object sender, EventArgs e)
{
sr.WriteLine("2 - Load event");
}
private void Form1_Activated(object sender, EventArgs e)
{
sr.WriteLine("3 - Activated event");
}
private void Form1_VisibleChanged(object sender, EventArgs e)
{
sr.WriteLine("4 - VisibleChanged event");
}
private void Form1_Shown(object sender, EventArgs e)
{
sr.WriteLine("5 -Shown event");
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
sr.WriteLine("6 - Paint event");
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
sr.WriteLine("7 - FormClosed event");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
sr.WriteLine("8 - FormClosing");
}
private void Form1_Deactivate(object sender, EventArgs e)
{
sr.WriteLine("9 - Deactivate");
}
}
حال برنامه را ذخیره کنید و سپس آن را اجرا کنید، پس از اجرای برنامه در خارج از فرم برنامه یک بار کلیک کنید و سپس درون فرم برنامه کلیک کنید، حال پنجره فرم را ببندید.
حال فایل formevents.txt را که در پوشه برنامه ایجاد شده است باز کنید.
همان طور که در فایل مشاهده می کند تمامی Event ها بر اساس ترتیب اجرا شدن در مدت زمان اجرای برنامه نوشته شده اند.